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, 1820🔥, 0💬
Popular Posts:
How To Create a Dynamic Cursor with the DYNAMIC Option in SQL Server Transact-SQL? If the underlying...
How To Start the Command-Line SQL*Plus in Oracle? If you Oracle server or client installed on your w...
How To Find Out What Privileges a User Currently Has in Oracle? Privileges granted to users are list...
How Run SQL*Plus Commands That Are Stored in a Local File in Oracle? If you have a group of commands...
What is sqlservr.exe - Process - SQL Server (SQLEX?PRESS) in SQL Server? Process sqlservr.exe is the...