公式ドキュメント: JSON 関数
1. 概要MySQL の json は json 配列と json オブジェクトに分かれています。 $ は JSON オブジェクト全体を表します。データのインデックスを作成するときは、添え字 (JSON 配列の場合は 0 から開始) またはキー値 (JSON オブジェクトの場合は、特殊文字を含むキーは " で囲む必要があります (例: $."my name")) を使用します。 たとえば、[3, {"a": [5, 6], "b": 10}, [99, 100]] の場合、次のようになります。 $[0]:3 $[1]: {"a": [5, 6], "b": 10} $[2] :[99, 100] $[3] : NULL $[1].a:[5, 6] $[1].a[1]:6 $[1].b:10 $[2][0]:99 2. 比較ルールJSON 内のデータは、=、<、<=、>、>=、<>、!=、<=> を使用して比較できます。しかし、json のデータ型は多様であるため、異なる型を比較する場合は優先順位があり、優先
3. 共通機能3.1 関数の作成3.1.1 JSON_配列 JSON_ARRAY(val1、val2、val3...) 指定された要素を含む JSON 配列を生成します。 mysql> JSON_ARRAY(1, "abc", NULL, TRUE, CURTIME()); を選択します。 +---------------------------------------------+ | JSON_ARRAY(1, "abc", NULL, TRUE, CURTIME()) | +---------------------------------------------+ | [1、"abc"、null、true、"11:30:24.000000"] | +---------------------------------------------+ 3.1.2 JSON_オブジェクト JSON_OBJECT(キー1、値1、キー2、値2...) 指定された KV ペアを含む json オブジェクトを生成します。いずれかのキーが NULL であるか、パラメータの数が奇数の場合、エラーがスローされます。 mysql> JSON_OBJECTを選択します('id'、87、'name'、'carrot'); +-----------------------------------------+ | JSON_OBJECT('id', 87, 'name', 'carrot') | +-----------------------------------------+ | {"id": 87, "name": "にんじん"} | +-----------------------------------------+ 3.1.3 JSON_QUOTE JSON_QUOTE(json_val) json_val を " で囲みます。 mysql> JSON_QUOTE('null') を選択し、JSON_QUOTE('"null"'); +--------------------+----------------------+ | JSON_QUOTE('null') | JSON_QUOTE('"null"') | +--------------------+----------------------+ | "null" | "\"null\"" | +--------------------+----------------------+ mysql> JSON_QUOTE('[1, 2, 3]')を選択します。 +-------------------------+ | JSON_QUOTE('[1, 2, 3]') | +-------------------------+ | "[1, 2, 3]" | +-------------------------+ 3.1.4 変換 変換(json_string,JSON) mysql> CONVERT('{"mail": "[email protected]", "name": "Amy"}',JSON) を選択します。 +--------------------------------------------------------+ | CONVERT('{"mail": "[email protected]", "name": "Amy"}',JSON) | +--------------------------------------------------------+ | {"メール": "[email protected]", "名前": "エイミー"} | +--------------------------------------------------------+ 3.2 クエリ機能3.2.1 JSON_CONTAINS JSON_CONTAINS(json_doc, val[, パス]) 指定されたパス内の指定されたデータが JSON ドキュメントに含まれているかどうかを照会します。含まれている場合は 1 を返し、含まれていない場合は 0 を返します。いずれかのパラメータが NULL であるかパスが存在しない場合は、 NULL が返されます。 mysql> SET @j = '{"a": 1, "b": 2, "c": {"d": 4}}'; mysql> @j2 を '1' に設定します。 mysql> JSON_CONTAINS(@j, @j2, '$.a') を選択します。 +---------------------------------+ | JSON_CONTAINS(@j, @j2, '$.a') | +---------------------------------+ | 1 | +---------------------------------+ mysql> JSON_CONTAINS(@j, @j2, '$.b') を選択します。 +---------------------------------+ | JSON_CONTAINS(@j、@j2、'$.b') | +---------------------------------+ | 0 | +---------------------------------+ mysql> SET @j2 = '{"d": 4}'; mysql> JSON_CONTAINS(@j, @j2, '$.a') を選択します。 +---------------------------------+ | JSON_CONTAINS(@j, @j2, '$.a') | +---------------------------------+ | 0 | +---------------------------------+ mysql> JSON_CONTAINS(@j, @j2, '$.c') を選択します。 +---------------------------------+ | JSON_CONTAINS(@j、@j2、'$.c') | +---------------------------------+ | 1 | +---------------------------------+ 3.2.2 JSON_CONTAINS_PATH JSON_CONTAINS_PATH(json_doc、one_or_all、パス[、パス]...) 指定されたパスが存在するかどうかを確認します。存在する場合は 1 を返し、存在しない場合は 0 を返します。いずれかの引数が NULL の場合、NULL を返します。 one_or_all は、「one」または「all」の値のみを取ることができます。one は、そのうちの 1 つだけが存在する必要があることを意味し、all は、すべてが存在している必要があることを意味します。 mysql> SET @j = '{"a": 1, "b": 2, "c": {"d": 4}}'; mysql> JSON_CONTAINS_PATH(@j, 'one', '$.a', '$.e') を選択します。 +---------------------------------------------+ | JSON_CONTAINS_PATH(@j, 'one', '$.a', '$.e') | +---------------------------------------------+ | 1 | +---------------------------------------------+ mysql> JSON_CONTAINS_PATH(@j, 'all', '$.a', '$.e') を選択します。 +---------------------------------------------+ | JSON_CONTAINS_PATH(@j, 'all', '$.a', '$.e') | +---------------------------------------------+ | 0 | +---------------------------------------------+ mysql> JSON_CONTAINS_PATH(@j, 'one', '$.c.d') を選択します。 +----------------------------------------+ | JSON_CONTAINS_PATH(@j, 'one', '$.c.d') | +----------------------------------------+ | 1 | +----------------------------------------+ mysql> JSON_CONTAINS_PATH(@j, 'one', '$.a.d') を選択します。 +----------------------------------------+ | JSON_CONTAINS_PATH(@j, 'one', '$.a.d') | +----------------------------------------+ | 0 | +----------------------------------------+ 3.2.3 JSON_EXTRACT JSON_EXTRACT(json_doc, パス[, パス] ...) json ドキュメントからデータを抽出します。いずれかのパラメータが NULL であるかパスが存在しない場合は、 NULL が返されます。複数のパスが抽出された場合、返されるデータは JSON 配列に囲まれます。 mysql> JSON_EXTRACT('[10, 20, [30, 40]]', '$[1]')を選択します。 +--------------------------------------------+ | JSON_EXTRACT('[10, 20, [30, 40]]', '$[1]') | +--------------------------------------------+ | 20 | +--------------------------------------------+ mysql> JSON_EXTRACT('[10, 20, [30, 40]]', '$[1]', '$[0]')を選択します。 +----------------------------------------------------+ | JSON_EXTRACT('[10, 20, [30, 40]]', '$[1]', '$[0]') | +----------------------------------------------------+ | [20, 10] | +----------------------------------------------------+ mysql> JSON_EXTRACT('[10, 20, [30, 40]]', '$[2][*]')を選択します。 +-------------------------------------------------+ | JSON_EXTRACT('[10, 20, [30, 40]]', '$[2][*]') | +-------------------------------------------------+ | [30, 40] | +-------------------------------------------------+ MySQL 5.7.9 以降では、代わりに「->」を使用できます。 mysql> SELECT c, JSON_EXTRACT(c, "$.id"), g > jempより > WHERE JSON_EXTRACT(c, "$.id") > 1 > ORDER BY JSON_EXTRACT(c, "$.name"); +---------------------------------+-----------+------+ | c | c->"$.id" | g | +---------------------------------+-----------+------+ | {"id": "3", "name": "バーニー"} | "3" | 3 | | {"id": "4", "name": "ベティ"} | "4" | 4 | | {"id": "2", "name": "ウィルマ"} | "2" | 2 | +---------------------------------+-----------+------+ セット内の 3 行 (0.00 秒) mysql> SELECT c, c->"$.id", g > jempより > WHERE c->"$.id" > 1 > ORDER BY c->"$.name"; +---------------------------------+-----------+------+ | c | c->"$.id" | g | +---------------------------------+-----------+------+ | {"id": "3", "name": "バーニー"} | "3" | 3 | | {"id": "4", "name": "ベティ"} | "4" | 4 | | {"id": "2", "name": "ウィルマ"} | "2" | 2 | +---------------------------------+-----------+------+ セット内の 3 行 (0.00 秒) MySQL 5.7.13 以降では、「->>」を使用して、抽出された結果から「」記号を削除することもできます。次の 3 つの効果は同じです。
mysql> SELECT * FROM jemp WHERE g > 2; +---------------------------------+------+ | は | は | は | +---------------------------------+------+ | {"id": "3", "name": "バーニー"} | 3 | | {"id": "4", "name": "ベティ"} | 4 | +---------------------------------+------+ セットに2行(0.01秒) mysql> SELECT c->'$.name' AS name -> jemp から g > 2; +----------+ | 名前 | +----------+ | 「バーニー」 | | 「ベティ」| +----------+ セット内の 2 行 (0.00 秒) mysql> SELECT JSON_UNQUOTE(c->'$.name') AS name -> jemp から g > 2; +--------+ | 名前 | +--------+ | バーニー | | ベティ | +--------+ セット内の 2 行 (0.00 秒) mysql> SELECT c->>'$.name' AS name -> jemp から g > 2; +--------+ | 名前 | +--------+ | バーニー | | ベティ | +--------+ セット内の 2 行 (0.00 秒) 3.2.4 JSON_KEYS JSON_KEYS(json_doc[, パス]) 指定されたパスの下にあるJSONドキュメントのすべてのキー値を取得し、JSON配列を返します。いずれかのパラメータが NULL であるかパスが存在しない場合は、 NULL が返されます。 mysql> JSON_KEYSを選択します('{"a": 1, "b": {"c": 30}}'); +---------------------------------------+ | JSON_KEYS('{"a": 1, "b": {"c": 30}}') | +---------------------------------------+ | ["a", "b"] | +---------------------------------------+ mysql> JSON_KEYSを選択します('{"a": 1, "b": {"c": 30}}', '$.b'); +------------------------------------------------+ | JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.b') | +------------------------------------------------+ | ["c"] | +------------------------------------------------+ 3.2.5 JSON_検索 JSON_SEARCH(json_doc、one_or_all、search_str[、escape_char[、path] ...]) 指定された文字列を含むパスをクエリし、JSON 配列として返します。いずれかの引数が NUL であるかパスが存在しない場合は、NULL が返されます。
mysql> SET @j = '["abc", [{"k": "10"}, "def"], {"x":"abc"}, {"y":"bcd"}]'; mysql> JSON_SEARCH(@j, 'one', 'abc') を選択します。 +---------------------------------+ | JSON_SEARCH(@j, 'one', 'abc') | +---------------------------------+ | 「$[0]」| +---------------------------------+ mysql> JSON_SEARCH(@j, 'all', 'abc') を選択します。 +---------------------------------+ | JSON_SEARCH(@j, 'all', 'abc') | +---------------------------------+ | ["$[0]", "$[2].x"] | +---------------------------------+ mysql> JSON_SEARCH(@j, 'all', 'ghi') を選択します。 +---------------------------------+ | JSON_SEARCH(@j, 'all', 'ghi') | +---------------------------------+ | NULL | +---------------------------------+ mysql> JSON_SEARCH(@j, 'all', '10') を選択します。 +------------------------------+ | JSON_SEARCH(@j, 'すべて', '10') | +------------------------------+ | "$[1][0].k" | +------------------------------+ mysql> JSON_SEARCH(@j, 'all', '10', NULL, '$') を選択します。 +-----------------------------------------+ | JSON_SEARCH(@j, 'all', '10', NULL, '$') | +-----------------------------------------+ | "$[1][0].k" | +-----------------------------------------+ mysql> SELECT JSON_SEARCH(@j, 'all', '10', NULL, '$[*]'); +--------------------------------------------+ | JSON_SEARCH(@j, 'all', '10', NULL, '$[*]') | +--------------------------------------------+ | "$[1][0].k" | +--------------------------------------------+ mysql> SELECT JSON_SEARCH(@j, 'all', '10', NULL, '$**.k'); +---------------------------------------------+ | JSON_SEARCH(@j, 'all', '10', NULL, '$**.k') | +---------------------------------------------+ | "$[1][0].k" | +---------------------------------------------+ mysql> SELECT JSON_SEARCH(@j, 'all', '10', NULL, '$[*][0].k'); +-------------------------------------------------+ | JSON_SEARCH(@j, 'all', '10', NULL, '$[*][0].k') | +-------------------------------------------------+ | "$[1][0].k" | +-------------------------------------------------+ mysql> JSON_SEARCH(@j, 'all', '10', NULL, '$[1]')を選択します。 +--------------------------------------------+ | JSON_SEARCH(@j, 'すべて', '10', NULL, '$[1]') | +--------------------------------------------+ | "$[1][0].k" | +--------------------------------------------+ mysql> JSON_SEARCH(@j, 'all', '10', NULL, '$[1][0]')を選択します。 +-------------------------------------------------+ | JSON_SEARCH(@j, 'すべて', '10', NULL, '$[1][0]') | +-------------------------------------------------+ | "$[1][0].k" | +-------------------------------------------------+ mysql> JSON_SEARCH(@j, 'all', 'abc', NULL, '$[2]')を選択します。 +---------------------------------------------+ | JSON_SEARCH(@j, 'all', 'abc', NULL, '$[2]') | +---------------------------------------------+ | "$[2].x" | +---------------------------------------------+ mysql> JSON_SEARCH(@j, 'all', '%a%') を選択します。 +---------------------------------+ | JSON_SEARCH(@j, 'すべて', '%a%') | +---------------------------------+ | ["$[0]", "$[2].x"] | +---------------------------------+ mysql> JSON_SEARCH(@j, 'all', '%b%') を選択します。 +---------------------------------+ | JSON_SEARCH(@j, 'すべて', '%b%') | +---------------------------------+ | ["$[0]", "$[2].x", "$[3].y"] | +---------------------------------+ mysql> JSON_SEARCH(@j, 'all', '%b%', NULL, '$[0]')を選択します。 +---------------------------------------------+ | JSON_SEARCH(@j, 'すべて', '%b%', NULL, '$[0]') | +---------------------------------------------+ | 「$[0]」| +---------------------------------------------+ mysql> SELECT JSON_SEARCH(@j, 'all', '%b%', NULL, '$[2]'); +---------------------------------------------+ | JSON_SEARCH(@j, 'すべて', '%b%', NULL, '$[2]') | +---------------------------------------------+ | "$[2].x" | +---------------------------------------------+ mysql> JSON_SEARCH(@j, 'all', '%b%', NULL, '$[1]')を選択します。 +---------------------------------------------+ | JSON_SEARCH(@j, 'すべて', '%b%', NULL, '$[1]') | +---------------------------------------------+ | NULL | +---------------------------------------------+ mysql> JSON_SEARCH(@j, 'all', '%b%', '', '$[1]')を選択します。 +------------------------------------------+ | JSON_SEARCH(@j, 'すべて', '%b%', '', '$[1]') | +------------------------------------------+ | NULL | +------------------------------------------+ mysql> JSON_SEARCH(@j, 'all', '%b%', '', '$[3]')を選択します。 +------------------------------------------+ | JSON_SEARCH(@j, 'すべて', '%b%', '', '$[3]') | +------------------------------------------+ | "$[3].y" | +------------------------------------------+ 3.3 関数の変更3.3.1 JSON_APPEND/JSON_ARRAY_APPEND JSON_ARRAY_APPEND(json_doc、パス、val[、パス、val]...) 指定されたパスの json 配列の末尾に val を追加します。指定されたパスが JSON オブジェクトの場合、JSON 配列にカプセル化されてから追加されます。いずれかの引数が NULL の場合、NULL を返します。 mysql> SET @j = '["a", ["b", "c"], "d"]'; mysql> JSON_ARRAY_APPEND(@j, '$[1]', 1)を選択します。 +----------------------------------+ | JSON_ARRAY_APPEND(@j, '$[1]', 1) | +----------------------------------+ | ["a", ["b", "c", 1], "d"] | +----------------------------------+ mysql> JSON_ARRAY_APPEND(@j, '$[0]', 2)を選択します。 +----------------------------------+ | JSON_ARRAY_APPEND(@j, '$[0]', 2) | +----------------------------------+ | [["a", 2], ["b", "c"], "d"] | +----------------------------------+ mysql> JSON_ARRAY_APPEND(@j, '$[1][0]', 3)を選択します。 +-------------------------------------+ | JSON_ARRAY_APPEND(@j, '$[1][0]', 3) | +-------------------------------------+ | ["a", [["b", 3], "c"], "d"] | +-------------------------------------+ mysql> SET @j = '{"a": 1, "b": [2, 3], "c": 4}'; mysql> JSON_ARRAY_APPEND(@j, '$.b', 'x') を選択します。 +------------------------------------+ | JSON_ARRAY_APPEND(@j, '$.b', 'x') | +------------------------------------+ | {"a": 1、"b": [2、3、"x"]、"c": 4} | +------------------------------------+ mysql> JSON_ARRAY_APPEND(@j, '$.c', 'y') を選択します。 +--------------------------------------+ | JSON_ARRAY_APPEND(@j, '$.c', 'y') | +--------------------------------------+ | {"a": 1、"b": [2、3]、"c": [4、"y"]} | +--------------------------------------+ mysql> @j を '{"a": 1}' に設定します。 mysql> JSON_ARRAY_APPEND(@j, '$', 'z') を選択します。 +---------------------------------+ | JSON_ARRAY_APPEND(@j, '$', 'z') | +---------------------------------+ | [{"a": 1}, "z"] | +---------------------------------+ 3.3.2 JSON_ARRAY_INSERT JSON_ARRAY_INSERT(json_doc、パス、val[、パス、val]...) パスで指定されたjson配列要素にvalを挿入し、元の位置と要素を順に右にシフトします。パスで指定されたデータが JSON 配列要素でない場合、この val はスキップされます。指定された要素インデックスが JSON 配列の長さを超える場合は、最後に挿入されます。 mysql> SET @j = '["a", {"b": [1, 2]}, [3, 4]]'; mysql> JSON_ARRAY_INSERT(@j, '$[1]', 'x')を選択します。 +------------------------------------+ | JSON_ARRAY_INSERT(@j, '$[1]', 'x') | +------------------------------------+ | ["a", "x", {"b": [1, 2]}, [3, 4]] | +------------------------------------+ mysql> JSON_ARRAY_INSERT(@j, '$[100]', 'x')を選択します。 +--------------------------------------+ | JSON_ARRAY_INSERT(@j, '$[100]', 'x') | +--------------------------------------+ | ["a", {"b": [1, 2]}, [3, 4], "x"] | +--------------------------------------+ mysql> JSON_ARRAY_INSERT(@j, '$[1].b[0]', 'x')を選択します。 +-----------------------------------------+ | JSON_ARRAY_INSERT(@j, '$[1].b[0]', 'x') | +-----------------------------------------+ | ["a", {"b": ["x", 1, 2]}, [3, 4]] | +-----------------------------------------+ mysql> JSON_ARRAY_INSERT(@j, '$[2][1]', 'y')を選択します。 +---------------------------------------+ | JSON_ARRAY_INSERT(@j, '$[2][1]', 'y') | +---------------------------------------+ | ["a", {"b": [1, 2]}, [3, "y", 4]] | +---------------------------------------+ mysql> JSON_ARRAY_INSERT(@j, '$[0]', 'x', '$[2][1]', 'y')を選択します。 +----------------------------------------------------+ | JSON_ARRAY_INSERT(@j, '$[0]', 'x', '$[2][1]', 'y') | +----------------------------------------------------+ | ["x", "a", {"b": [1, 2]}, [3, 4]] | +----------------------------------------------------+ 3.3.3 JSON_INSERT/JSON_REPLACE/JSON_SET JSON_INSERT(json_doc、パス、val[、パス、val]...) 指定されたパスの下にデータを挿入します。パスがすでに存在する場合、この値は無視されます (存在しない場合にのみ挿入されます)。 mysql> SET @j = '{ "a": 1, "b": [2, 3]}'; mysql> SELECT JSON_INSERT(@j, '$.a', 10, '$.c', '[true, false]'); +----------------------------------------------------+ | JSON_INSERT(@j, '$.a', 10, '$.c', '[true, false]') | +----------------------------------------------------+ | {"a": 1、"b": [2、3]、"c": "[true、false]"} | +----------------------------------------------------+ JSON_REPLACE(json_doc, パス, val[, パス, val] ...) 指定されたパス内のデータを置き換えます。パスが存在しない場合はスキップされます (存在する場合のみ置き換えます)。いずれかの引数が NULL の場合、NULL を返します。 mysql> SET @j = '{ "a": 1, "b": [2, 3]}'; mysql> JSON_REPLACE(@j, '$.a', 10, '$.c', '[true, false]')を選択します。 +-----------------------------------------------------+ | JSON_REPLACE(@j, '$.a', 10, '$.c', '[true, false]') | +-----------------------------------------------------+ | {"a": 10, "b": [2, 3]} | +-----------------------------------------------------+ JSON_SET(json_doc、パス、val[、パス、val]...) 指定されたパスのデータ(存在するかどうかに関係なく)を設定します。いずれかの引数が NULL の場合、NULL を返します。 mysql> SET @j = '{ "a": 1, "b": [2, 3]}'; mysql> JSON_SET(@j, '$.a', 10, '$.c', '[true, false]')を選択します。 +-------------------------------------------------+ | JSON_SET(@j, '$.a', 10, '$.c', '[true, false]') | +-------------------------------------------------+ | {"a": 10、"b": [2、3]、"c": "[true、false]"} | +-------------------------------------------------+ mysql> SELECT JSON_INSERT(@j, '$.a', 10, '$.c', '[true, false]'); +----------------------------------------------------+ | JSON_INSERT(@j, '$.a', 10, '$.c', '[true, false]') | +----------------------------------------------------+ | {"a": 1、"b": [2、3]、"c": "[true、false]"} | +----------------------------------------------------+ mysql> JSON_REPLACE(@j, '$.a', 10, '$.c', '[true, false]')を選択します。 +-----------------------------------------------------+ | JSON_REPLACE(@j, '$.a', 10, '$.c', '[true, false]') | +-----------------------------------------------------+ | {"a": 10, "b": [2, 3]} | +-----------------------------------------------------+ 3.3.4 JSON_MERGE JSON_MERGE(json_doc、json_doc[、json_doc]...) 複数の JSON ドキュメントをマージします。ルールは次のとおりです。
mysql> JSON_MERGE('[1, 2]', '[true, false]')を選択します。 +---------------------------------------+ | JSON_MERGE('[1, 2]', '[true, false]') | +---------------------------------------+ | [1, 2, 真, 偽] | +---------------------------------------+ mysql> JSON_MERGE('{"name": "x"}', '{"id": 47}')を選択します。 +------------------------------------------+ | JSON_MERGE('{"name": "x"}', '{"id": 47}') | +------------------------------------------+ | {"id": 47, "name": "x"} | +------------------------------------------+ mysql> JSON_MERGE('1', 'true') を選択します。 +-------------------------+ | JSON_MERGE('1', 'true') | +-------------------------+ | [1、真] | +-------------------------+ mysql> JSON_MERGEを選択します('[1, 2]', '{"id": 47}'); +------------------------------------+ | JSON_MERGE('[1, 2]', '{"id": 47}') | +------------------------------------+ | [1, 2, {"id": 47}] | +------------------------------------+ 3.3.5 JSON_REMOVE JSON_REMOVE(json_doc, パス[, パス] ...) 指定されたパスのデータを削除します。パスが存在しない場合はスキップされます。いずれかの引数が NULL の場合、NULL を返します。 mysql> SET @j = '["a", ["b", "c"], "d"]'; mysql> JSON_REMOVE(@j, '$[1]')を選択します。 +-------------------------+ | JSON_REMOVE(@j, '$[1]') | +-------------------------+ | ["あ", "だ"] | +-------------------------+ 3.3.6 JSON_UNQUOTE JSON_UNQUOTE(値) val を囲む引用符を削除します。 val が NULL の場合、NULL を返します。 mysql> @j を '"abc"' に設定します。 mysql> @j を選択し、JSON_UNQUOTE(@j); +-------+------------------+ | @j | JSON_UNQUOTE(@j) | +-------+------------------+ | "abc" | abc | +-------+------------------+ mysql> SET @j = '[1, 2, 3]'; mysql> @j を選択し、JSON_UNQUOTE(@j); +-----------+------------------+ | @j | JSON_UNQUOTE(@j) | +-----------+------------------+ | [1, 2, 3] | [1, 2, 3] | +-----------+------------------+ 3.4 JSON機能クエリ3.4.1 JSON_DEEPTH JSON_DEPTH(json_doc) JSON ドキュメントの深度を取得します。引数が NULL の場合、NULL を返します。 空の JSON 配列、JSON オブジェクト、またはスカラーの深さは 1 です。 mysql> JSON_DEPTH('{}')、JSON_DEPTH('[]')、JSON_DEPTH('true')を選択します。 +------------------+------------------+--------------------+ | JSON_DEPTH('{}') | JSON_DEPTH('[]') | JSON_DEPTH('true') | +------------------+------------------+--------------------+ | 1 | 1 | 1 | +------------------+------------------+--------------------+ mysql> JSON_DEPTH('[10, 20]')、JSON_DEPTH('[[], {}]')を選択します。 +------------------------+------------------------+ | JSON_DEPTH('[10, 20]') | JSON_DEPTH('[[], {}]') | +------------------------+------------------------+ | 2 | 2 | +------------------------+------------------------+ mysql> JSON_DEPTH('[10, {"a": 20}]')を選択します。 +---------------------------------+ | JSON_DEPTH('[10, {"a": 20}]') | +---------------------------------+ | 3 | +---------------------------------+ 3.4.2 JSON_長さ JSON_LENGTH(json_doc[, パス]) 指定されたパスの長さを取得します。引数が NULL の場合、 NULL を返します。 長さの計算ルール:
mysql> JSON_LENGTH('[1, 2, {"a": 3}]')を選択します。 +---------------------------------+ | JSON_LENGTH('[1, 2, {"a": 3}]') | +---------------------------------+ | 3 | +---------------------------------+ mysql> JSON_LENGTH('{"a": 1, "b": {"c": 30}}')を選択します。 +-----------------------------------------+ | JSON_LENGTH('{"a": 1, "b": {"c": 30}}') | +-----------------------------------------+ | 2 | +-----------------------------------------+ mysql> JSON_LENGTH('{"a": 1, "b": {"c": 30}}', '$.b') を選択します。 +------------------------------------------------+ | JSON_LENGTH('{"a": 1, "b": {"c": 30}}', '$.b') | +------------------------------------------------+ | 1 | +------------------------------------------------+ 3.4.3 JSON_TYPE JSON_TYPE(json_val) json ドキュメントの特定のタイプを取得します。引数が NULL の場合、 NULL を返します。 3.4.4 JSON_VALID JSON_VALID(値) val が有効な JSON 形式であるかどうかを判断します。有効な場合は 1、そうでない場合は 0 になります。引数が NUL の場合、NULL が返されます。 mysql> JSON_VALID('{"a": 1}')を選択します。 +------------------------+ | JSON_VALID('{"a": 1}') | +------------------------+ | 1 | +------------------------+ mysql> JSON_VALID('hello') を選択し、JSON_VALID('"hello"') を選択します。 +---------------------+-----------------------+ | JSON_VALID('hello') | JSON_VALID('"hello"') | +---------------------+-----------------------+ | 0 | 1 | +---------------------+-----------------------+ 一般的な MySQL JSON 関数の使用に関するこの記事はこれで終わりです。関連する MySQL JSON 一般的な関数の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: CSS3 を使用して 3D テキスト ホバー効果を実装するサンプル コード
>>: Docker ファイルの保存パス、ポート マッピング操作モードの変更
1. CSSナビゲーションバー(1)ナビゲーションバーの機能ナビゲーション バーを使いこなすことは、...
目次序文: 1. 役割の紹介2. 役割に関連する操作要約:序文:前回の記事では、MySQLの権限管理...
Vue では、ほとんどの場合、テンプレートを使用して HTML を作成することを推奨しています。ただ...
この記事では、例を使用して、MySQL 共同インデックスの機能と使用方法を説明します。ご参考までに、...
今日もとても実践的な事例です。名前を聞くだけで高度で難しそうですよね?今日はカルーセル画像の真髄を簡...
clear プロパティを使用してフロートをクリアすることはよくあることであり、clear プロパティ...
まず、PHP5をインストールするのはとても簡単ですyum install php PHP5 を使用し...
1. Windows システムでは、JDK のインストールなど、多くのソフトウェアのインストールで...
具体的な方法: (推奨チュートリアル:MySQLデータベース学習チュートリアル)テーブルロックの状態...
序文最近、古いプロジェクトから残ったいくつかの SQL 最適化の問題に対処するのに忙しくしています。...
目次1. 自己列挙可能なプロパティ2. Object.values()はプロパティ値を返します3. ...
この記事の例では、スネークゲームを実装するためのjsの具体的なコードを参考までに共有しています。具体...
以下はすべて仮想マシン上で実行されます1. pip3をインストールするsudo apt で pyth...
目次解決策1解決策2テーブルを作成するときに、興味深い問題に遭遇しました。「指定されたキーが長すぎま...
Docker コンテナはサービスを提供し、ポート 8888 をリッスンします。外部からアクセスできる...