JSON_ARRAY_CONTAINS_<type>

This is a set of three JSON functions, which return true if the given value is contained in the JSON array. JSON arrays are lists in this form:

["foo", "bar", "baz"]
["foo", 1, 2, 3]
  • JSON_ARRAY_CONTAINS_DOUBLE is for all numeric data. Javascript has only one numeric type.
  • JSON_ARRAY_CONTAINS_STRING is for all text and binary types.
  • JSON_ARRAY_CONTAINS_JSON is for all valid Javascript types, including true, false, JSON maps, and lists.

    JSON_ARRAY_CONTAINS_<type>(json, value)
    

    Arguments

  • json: a valid JSON array, or the name of a JSON column

  • value: the value to search

Return Value

  • 1 (SQL TRUE) if the given JSON array contains a top-level element comparing equal to the specified value.
  • 0 (SQL FALSE) if the specified value is not present, or if the specified value is SQL NULL.
  • SQL NULL if json is not a valid JSON array.

Examples

mysql> select json_array_contains_string('["foo", "bar", "baz"]', 'foo') as has_foo;
+---------+
| has_foo |
+---------+
|       1 |
+---------+

mysql> select json_array_contains_string('invalid', 'foo') as has_foo;
+---------+
| has_foo |
+---------+
|    NULL |
+---------+

mysql> select json_array_contains_double('["foo", 1, 2, 3]', 3) as has_three;
+-----------+
| has_three |
+-----------+
|         1 |
+-----------+

mysql> select json_array_contains_json('["foo", 1, true, 3]', 'true') as has_truth;
+-----------+
| has_truth |
+-----------+
|         1 |
+-----------+

mysql> select json_array_contains_json('["foo", {"a":"b"}, 4]', '{"a":"b"}') as has_map;
+---------+
| has_map |
+---------+
|       1 |
+---------+
Was this article useful?