Collections:
JSON_CONTAINS() - Finding JSON in JSON
How to verify if a JSON value is contained in another a JSON (JavaScript Object Notation) value using the JSON_CONTAINS() function?
✍: FYIcenter.com
JSON_CONTAINS(target, candidate, path) is a MySQL built-in function that verifies if the given candidate JSON value is contained at the given location in the target JSON value.
JSON_CONTAINS() uses the following rules to calculate the return value:
For example:
SET @j = '{"a":true, "b":[1,[2,[3,4]]], "c":{"x":6,"y":[7,[8,9]]}}'; SELECT JSON_CONTAINS(@j, 'true'), JSON_CONTAINS(@j, 'true', '$.a'); -- +---------------------------+----------------------------------+ -- | JSON_CONTAINS(@j, 'true') | JSON_CONTAINS(@j, 'true', '$.a') | -- +---------------------------+----------------------------------+ -- | 0 | 1 | -- +---------------------------+----------------------------------+ SELECT JSON_CONTAINS(@j, '1', '$.b'), JSON_CONTAINS(@j, '7', '$.c'); -- +-------------------------------+-------------------------------+ -- | JSON_CONTAINS(@j, '1', '$.b') | JSON_CONTAINS(@j, '7', '$.c') | -- +-------------------------------+-------------------------------+ -- | 1 | 0 | -- +-------------------------------+-------------------------------+ SELECT JSON_CONTAINS(@j, '[3,4]'), JSON_CONTAINS(@j, '[3,4]', '$.b[1][1]'); -- +----------------------------+-----------------------------------------+ -- | JSON_CONTAINS(@j, '[3,4]') | JSON_CONTAINS(@j, '[3,4]', '$.b[1][1]') | -- +----------------------------+-----------------------------------------+ -- | 0 | 1 | -- +----------------------------+-----------------------------------------+ SELECT JSON_CONTAINS(@j, '{"a":true}'), JSON_CONTAINS(@j, '{"a":false}'); -- +---------------------------------+----------------------------------+ -- | JSON_CONTAINS(@j, '{"a":true}') | JSON_CONTAINS(@j, '{"a":false}') | -- +---------------------------------+----------------------------------+ -- | 1 | 0 | -- +---------------------------------+----------------------------------+
Note that rules described above treat nested arrays in a target JSON value as a single expanded array. For example:
SET @j = '{"a":true, "b":[1,[2,[3,4]]], "c":{"x":6,"y":[7,[8,9]]}}'; SELECT JSON_CONTAINS(@j, '[1,4]', '$.b'); -- +-----------------------------------+ -- | JSON_CONTAINS(@j, '[1,4]', '$.b') | -- +-----------------------------------+ -- | 1 | -- +-----------------------------------+ SELECT JSON_CONTAINS(@j, '{"y":9}', '$.c'); -- +-------------------------------------+ -- | JSON_CONTAINS(@j, '{"y":9}', '$.c') | -- +-------------------------------------+ -- | 1 | -- +-------------------------------------+
Reference information of the JSON_CONTAINS() function:
JSON_CONTAINS(target, candidate, path): int Verifies if the given candidate JSON value is contained at the given location in the target JSON value. Arguments, return value and availability: target: Required. The JSON value to be searched in. candidate: Required. The JSON value to search for. path: Optional. The default is "$". The location of in the target to be searched in. int: Return value. The verification result. Available since MySQL 5.7.
⇒ JSON_CONTAINS_PATH() - Finding Path in JSON
⇐ JSON_ARRAY_INSERT() - Inserting Value to JSON Array
2023-12-11, 236🔥, 0💬
Popular Posts:
How To Break Query Output into Pages in MySQL? If you have a query that returns hundreds of rows, an...
How To Connect ASP Pages to Oracle Servers in Oracle? If you are running Windows IIS Web server and ...
How To Connect the Oracle Server as SYSDBA in Oracle? This is Step 4. The best way to connect to the...
How To Install PHP on Windows in MySQL? The best way to download and install PHP on Windows systems ...
How to change the data type of an existing column with "ALTER TABLE" statements in SQL Server? Somet...