JSON 形式のフィールドは、MySQL 5.7 で追加された新しい属性ですが、基本的には文字列としてデータベースに保存されます。初めて触れたときは、フィールドをクエリする $.xx メソッドしか知りませんでした。ほとんどの場合、これで十分であり、残りはプログラムに任せられるからです。しかし、最近の操作の中には、より複雑なクエリ操作が必要なものもあったので、すぐにもっと多くの方法を学びました。 JSON_EXTRACT(json_doc [,パス]) クエリフィールド mysql> @j = '{"name":"wxnacy"}' を設定します。 mysql> JSON_EXTRACT(@j, '$.name') を選択します。 +----------------------------+ | JSON_EXTRACT(@j, '$.name') | +----------------------------+ | 「wxnacy」| +----------------------------+ より簡潔な方法もありますが、テーブルをクエリするときにのみ使用できます。 mysql> テストから ext -> '$.name' を選択します。 +-----------------+ | 拡張子 -> '$.name' | +-----------------+ | 「wxnacy」| +-----------------+ $. の後には、JSON 形式を使用して配列などのデータを取得できます。 mysql> @j = '{"a": [1, 2]}' を設定します。 mysql> JSON_EXTRACT(@j, '$.a[0]')を選択します。 +----------------------------+ | JSON_EXTRACT(@j, '$.a[0]') | +----------------------------+ | 1 | +----------------------------+ JSON_DEPTH(json_doc) JSONの深さを計算します。計算方法は{} []です。記号がある場合はレイヤーです。記号の下にデータがある場合は、さらにレイヤーが追加されます。複雑なJSONは最も深いものまで計算されます。公式ドキュメントではnull値の深さは0と書かれていますが、実際の効果はそうではありません。いくつか例を挙げます JSON_LENGTH(json_doc [, パス]) 最も外側の JSON または指定されたパスの長さを計算します。スカラーの長さは 1 です。配列の長さは配列要素の数であり、オブジェクトの長さはオブジェクト メンバーの数です。 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 | +------------------------------------------------+ JSON_TYPE(json_doc) JSON 値の型を示す utf8mb4 文字列を返します。 これは、次に示すように、オブジェクト、配列、またはスカラー型になります。 mysql> SET @j = '{"a": [10, true]}'; mysql> JSON_TYPE(@j) を選択します。 +---------------+ | JSON_TYPE(@j) | +---------------+ | オブジェクト | +---------------+ mysql> JSON_TYPE(JSON_EXTRACT(@j, '$.a'))を選択します。 +------------------------------------+ | JSON_TYPE(JSON_EXTRACT(@j, '$.a')) | +------------------------------------+ | 配列 | +------------------------------------+ mysql> JSON_TYPE(JSON_EXTRACT(@j, '$.a[0]'))を選択します。 +---------------------------------------+ | JSON_TYPE(JSON_EXTRACT(@j, '$.a[0]')) | +---------------------------------------+ | 整数 | +---------------------------------------+ mysql> JSON_TYPE(JSON_EXTRACT(@j, '$.a[1]'))を選択します。 +---------------------------------------+ | JSON_TYPE(JSON_EXTRACT(@j, '$.a[1]')) | +---------------------------------------+ | ブール値 | +---------------------------------------+ 戻り値の型 純粋なJSON型:
番号タイプ:
時間タイプ:
文字列型: STRING: MySQL utf8 文字型スカラー: CHAR、VARCHAR、TEXT、ENUM、SET バイナリタイプ: BLOB: MySQL バイナリ型スカラー (BINARY、VARBINARY、BLOB、BIT など) その他すべてのタイプ: OPAQUE (生ビット) JSON_有効 値が有効な JSON であるかどうかを示す 0 または 1 を返します。 引数が NULL の場合、 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の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Vue を使用して 2 つのデータ セットの違いを比較する視覚化コンポーネントの詳細な説明
>>: IdeaでTomcatを起動したときに複数のリスナーが報告される問題を解決する
インターフェイス ドメイン名を構成する際、各パブリック プラットフォームはドメイン名に対する開発者の...
丁寧に掃除を始めましょう!未使用ボリュームの一覧docker ボリューム ls -qf dangli...
1. 中国語入力方法を設定する 2. ダブルスペルモードを設定する 3. 注意事項20.04 で S...
<em></em> などのフレーズ要素を使用すると、意図した視覚スタイルを維...
1. データ重複排除日常業務では、Hive や Impala を使用してクエリとエクスポートを行う際...
CSS の開発履歴についてはここでは紹介しません。ブログを書いている理由の 1 つは、フロントエンド...
以下のように表示されます。 1. ssh -v -p [ポート番号] [ユーザー名]@[IPアドレス...
目次1. V8ソース2. V8サービスターゲット3. V8の初期アーキテクチャIV. V8の初期アー...
序文最近、C++ 動的ライブラリをテストするためにロボット フレームワークを使い始めました。ロボット...
Docker テクノロジの開発により、マイクロサービスの実装にさらに便利な環境が提供されます。Doc...
vue3.0 への最初の試みを記録します。プロジェクトを開始したときに、「モジュール 'wo...
非常に大量のデータ(数百 GB)を計算する必要があったことはありますか?または、その内部を検索したり...
1. 背景1. vSphere の共有ストレージの背景を簡単に紹介するvSphere の重要な機能は...
XML/HTML コードコンテンツをクリップボードにコピー< div クラス= "c...
序文ある日、突然 MySQL の次のキー ロックについて尋ねられ、私の即座の反応は次のようなものでし...