この記事では、MySQL 5.7 で追加された json フィールド タイプの使用方法を例を使って説明します。ご参考までに、詳細は以下の通りです。 1. テーブルを作成し、データを準備しましょう テーブル `json_test` を作成します ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID', `json` json デフォルト NULL コメント 'json データ', 主キー (`id`) )ENGINE=InnoDB デフォルト文字セット=utf8mb4; 2. json列のフィールドを取得する -> または ->> 演算子を使用して、JSON 列のフィールドを取得します。 json_testからid、json->'$[0].items[0].name'を選択します。 json_testからid、json->>'$[0].items[0].name'を選択します。 -> と ->> の違いは、結果が引用符で囲まれることです。 3. JSONを処理するためのいくつかの関数 JSON_PRETTY(json_val)はjson値をエレガントな形式で表示します json_test\G から id、JSON_PRETTY(json) を選択します。 JSON_CONTAINS(target, candidate[, path]) 指定された候補がターゲットに含まれているかどうかを判断します。パスが指定されている場合は、指定されたパスで検索します。 候補が数値の場合は、一重引用符で囲む必要があることに注意してください。文字列の場合は、一重引用符の内側に二重引用符で囲む必要があります。 json_testからJSON_CONTAINS(json->'$[0].name', '"1号basket"')を選択します。 json_testからJSON_CONTAINS(json, '"1号篮"', '$[0].name')を選択します。 JSON_CONTAINS_PATH(json_doc, one_or_all, path[, path] ...) は、json_doc 内のパスが存在するかどうか、または平易に言えば、json 内のキーが存在するかどうかを判断します。 json_testからJSON_CONTAINS_PATH(json, 'one', '$[0].name', '$[0].test')を選択します。 2番目のパラメータ「1」は、キーがある場合は1を返し、ない場合は0を返すことを意味します。 json_testからJSON_CONTAINS_PATH(json, 'all', '$[0].name', '$[0].test')を選択します。 2番目のパラメータ「all」は、すべてのキーが存在する場合にのみ1が返され、それ以外の場合は0が返されることを意味します。 JSON_SET(json_doc, path, val[, path, val] ...)はデータを挿入または更新し、結果を返します。 json_testからJSON_SET(json, '$[0].name', 'バスケット番号2', '$[0].test', 'test')を選択します。 $[0].nameの値を変更し、キーtestと値testを持つ項目を追加します。 JSON_INSERT(json_doc, path, val[, path, val] ...) データを挿入して結果を返しますが、既存の値は置き換えません。 json_testからJSON_INSERT(json, '$[0].name', 'バスケット番号2', '$[0].exts', '拡張子')を選択します。 この時点では、$[0].nameは更新されず、新しいフィールド$[0].extsのみが追加されます。 JSON_REPLACE(json_doc, path, val[, path, val] ...) 既存の値を置き換え、結果を返します。 json_testからJSON_REPLACE(json, '$[0].name', 'Replace')を選択します。 $[0].nameの値を新しい値に置き換えます JSON_REMOVE(json_doc, path[, path] ...) データを削除し、結果を返します json_testからJSON_REMOVE(json, '$[0].name')を選択します。 データ$[0].nameを削除します JSON_KEYS(json_doc[, path]) jsonドキュメント内のすべてのキーを取得します json_testからJSON_KEYS(json, '$[0]')を選択します。 $[0]パスの下にあるすべてのキーを取得します JSON_LENGTH(json_doc[, path]) jsonドキュメントの長さを取得します json_testからJSON_LENGTH(json, '$[0]')を選択します。 $[0]以下の要素の数を取得します。 JSON_EXTRACT(json_doc, path[, path] ...) jsonドキュメント内のデータを返します json_testからJSON_EXTRACT(json, '$[0]')を選択します。 json_testからJSON_EXTRACT(json, '$[0].name')を選択します。 jsonドキュメントの指定されたパスにあるデータを返します JSON_ARRAY([val[, val] ...])はJSON配列を作成する JSON_ARRAY(1, '2', true, 5.6, null, now()) を選択します。 JSON_OBJECT([key, val[, key, val] ...]) キーと値のペアからJSONオブジェクトを作成する JSON_OBJECT('name', 'xiaoxu', 'age', 28, 'height', 1.72)を選択します。 キーと値はペアで表示する必要があることに注意してください。 JSON_MERGE_PATCH(json_doc, json_doc[, json_doc] ...) は、json ドキュメントをマージします。重複するキーがある場合、後者のデータが前のデータを上書きします。 JSON_MERGE_PATCH('{"name":"test1"}', '{"name":"test2"}') を選択します。 JSON_MERGE_PRESERVE(json_doc, json_doc[, json_doc] ...) は、json ドキュメントをマージします。重複するキーがある場合、値は配列に保存されます。 JSON_MERGE_PRESERVE('{"name":"test1"}', '{"name":"test2"}') を選択します。 JSON_QUOTE(文字列)は、内部引用符やその他の文字を二重引用符で囲んでエスケープします。 JSON_QUOTE('Hello "World"') を選択します。 JSON_UNQUOTE(json_val) エスケープ文字を通常の文字に戻す JSON_UNQUOTE('Hello\\t\"world\"') を選択します。 MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL クエリ スキル」、「MySQL 共通関数の概要」、「MySQL ログ操作スキル」、「MySQL トランザクション操作スキルの概要」、「MySQL ストアド プロシージャ スキル」、および「MySQL データベース ロック関連スキルの概要」 この記事が皆様のMySQLデータベース設計に役立つことを願っています。 以下もご興味があるかもしれません:
|
<<: 知らないかもしれない実用的なTypeScriptのヒント
>>: Ubuntu Linuxシステムをインストールするときにハードディスクをパーティション分割する最も合理的な方法の詳細な説明
Mixin は、再利用可能な機能を Vue コンポーネント間で分散する非常に柔軟な方法を提供します。...
目次回避策Vue2.0 で 2 つの配列の変更を監視できないのはなぜですか?ソースコード分析ヴュー3...
ここでは主に、スタンドアロンのプログラムを生成できるspring-bootと、Mavenプラグインd...
1. データ重複排除日常業務では、Hive や Impala を使用してクエリとエクスポートを行う際...
目次1. ブリッジを設定し、検証のためにパケットをキャプチャする1. ブリッジデバイスとセッションを...
目次JSONとはなぜこの技術なのでしょうか? JSONの使い方- データ形式- メモ- JSには2つ...
サーバー情報管理サーバー: m01 172.16.1.61サーバー: nfs01 172.16.1....
場合によっては、SQL へのデータのエクスポートとインポートを容易にするために、特定のツールを使用し...
序文Oracle や SQL Server などのデータベースには、ストレージ エンジンが 1 つだ...
背景nginx-kafka-module は、Kafka を nginx に統合して、Web プロジ...
TranslateThis URL: http://translateth.is Google 翻訳...
一般的な開発ニーズとして、要素の一部を必要になるまで折りたたんでおきたいことが挙げられます。 Boo...
1. MySQLの一般的な接続INNER JOIN (内部結合、または等価結合): 2 つのテーブ...
序文: MySQL データベースは、よく使用される集計関数、日付および文字列処理関数など、幅広い関数...
タイトル通りです。その質問は非常に奇妙です。要素の親タグはdivで、幅や高さなどの属性は設定されてい...