JSON は、言語に依存しないテキスト形式を使用する軽量のデータ交換形式で、XML に似ていますが、XML よりもシンプルで、読み書きが簡単です。マシンによる解析と生成が容易になり、ネットワーク帯域幅の伝送が削減されます。 JSON の形式は非常にシンプルです: 名前/キー値。以前の MySQL バージョンでは、このようなストレージを実装するために、VARCHAR または TEXT のラージ テキストが使用されていました。 MySQL 5.7 のリリース以降、JSON データ型と、この型の取得およびその他の関数解析が特別に設計されました。 まず、MySQL の古いバージョンでの JSON アクセスについて見てみましょう。 テーブル構造の例: テーブルjson_testを作成します( id INT、 person_desc テキスト )エンジン INNODB; レコードを挿入してみましょう: json_test VALUES に NSERT (1,'{ 「プログラマー」: [{ "firstName": "ブレット", "姓": "マクラフリン", 「メール」:「aaaa」 }, { "firstName": "ジェイソン", "姓": "ハンター", 「メール」:「bbbb」 }, { "firstName": "エリオット", "姓": "ハロルド", 「メール」:「cccc」 }], 「著者」: [{ "firstName": "アイザック", "lastName": "アシモフ", 「ジャンル」:「SF」 }, { "firstName": "タッド", "姓": "ウィリアムズ", 「ジャンル」:「ファンタジー」 }, { "firstName": "フランク", "姓": "ペレッティ", 「ジャンル」:「キリスト教フィクション」 }], 「ミュージシャン」: [{ "firstName": "エリック", "姓": "クラプトン", 「楽器」:「ギター」 }, { "firstName": "セルゲイ", "lastName": "ラフマニノフ", 「楽器」:「ピアノ」 }] }'); 一般的に言えば、JSON 形式のこのようなストレージに遭遇した場合、このレコードを取り出してアプリケーションに渡し、解析するしかありません。 MySQL 5.7 では、次のテーブル構造を変更します。 ALTER TABLE json_test MODIFY person_desc json; まず、挿入された JSON データのキーを見てみましょう。 mysql> id、json_keys(person_desc) を "keys" として json_test\G から選択します ************************** 1. 行 **************************** id: 1 キー: ["著者", "ミュージシャン", "プログラマー"] セット内の行数 (0.00 秒) 著者、ミュージシャン、プログラマーという 3 つのキーがあることがわかります。次に、KEY を見つけて、対応する値を取得します。 mysql> SELECT json_extract(AUTHORS,'$.lastName[0]') AS 'name', AUTHORS FROM -> ( -> SELECT id,json_extract(person_desc,'$.authors[0][0]') AS "authors" FROM json_test -> すべてを結合 -> SELECT id,json_extract(person_desc,'$.authors[1][0]') AS "authors" FROM json_test -> すべてを結合 -> SELECT id,json_extract(person_desc,'$.authors[2][0]') AS "authors" FROM json_test -> ) AS T1 -> 名前順で並べ替え\G ************************** 1. 行 **************************** 名前: 「ウィリアムズ」 著者: {"genre": "fantasy", "lastName": "Williams", "firstName": "Tad"} ************************** 2. 行 **************************** 名前: 「ペレッティ」 著者: {"genre": "christianfiction", "lastName": "Peretti", "firstName": "Frank"} ************************** 3. 行 **************************** 名前:「アシモフ」 著者: {"genre": "sciencefiction", "lastName": "Asimov", "firstName": "Isaac"} セット内の 3 行 (0.00 秒) それでは、詳細な値をリストしてみましょう。 mysql> 選択 -> json_extract(AUTHORS,'$.firstName[0]') AS "firstname", -> json_extract(AUTHORS,'$.lastName[0]') AS "lastname", -> json_extract(AUTHORS,'$.genre[0]') AS "ジャンル" -> から -> ( -> SELECT id,json_extract(person_desc,'$.authors[0]') AS "authors" FROM json _テスト -> ) AS T\G ************************** 1. 行 **************************** 名:「アイザック」 姓:「アシモフ」 ジャンル: 「SF」 セット内の行数 (0.00 秒) さらに、KEY 作成者に対応するすべてのオブジェクトを削除する方法を説明します。 mysql> json_test を更新 -> SET person_desc = json_remove(person_desc,'$.authors')\G クエリは正常、1 行が影響を受けました (0.01 秒) 一致した行: 1 変更された行: 1 警告: 0 対応するKEYを検索したところ、削除されていたことがわかりました。 mysql> json_contains_path(person_desc,'all','$.authors') を authors_exist として選択します json_test_G からのs ************************** 1. 行 **************************** 著者の存在: 0 セット内の行数 (0.00 秒) まとめると、MySQL 5.7 では JSON データ型のサポートが開始されましたが、これを使用する場合は、このような値を取り出してアプリケーション セクションで計算するのが最善であると私は提案します。結局のところ、データベースは単純なデータを処理するために使用します。 要約する 上記は、編集者が紹介したMySQL 5.7 JSON型の使用に関する詳細な説明です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
<<: Dockerが独自のローカルイメージリポジトリを構築するための手順
>>: CentOS での Docker の詳細なインストール チュートリアル
ガラス窓今日実現するのは雨滴効果です。ただし、雨滴効果を実現する前に、まずは曇りガラス効果を作成しま...
FOUC は Flash of Unstyled Content の略で、FOUC と略されます。簡...
目次1. Linuxのビット数を確認する2. JDKをダウンロードする3. JDKをインストールする...
目次新しいユーザーを作成する新規ユーザーを承認する新規ユーザーのSSHキーログインを有効にする他のS...
いわゆる才能(左脳と右脳)つまり、芸術的な才能があるかどうかは、人間の左脳と右脳の分業によって主に決...
序文システム領域の使用量が大きすぎて消去する必要がある場合、または特定のファイルを消去する必要がある...
目次キル命令実行原理命令実行特性クエリ実行の強制終了の原則接続終了の実装原則中断される可能性はありま...
目次LinuxでTCPを作成する手順サーバクライアントTCP確立プロセスサンプルコードLinuxでT...
目次テーブルの競合を見つけて修正するインデックス統計の更新テーブルの競合を見つけて修正するデータ テ...
GUNスクリーン:公式サイト: http://www.gnu.org/software/screen...
コンテンツ詳細タグ: <h1>~<h6>タイトルタグ<pre>テ...
現在、多くの企業が割引コードを通じてプロモーションを行っています。今では、8桁の割引コードを実装して...
「私たちは次の一連のモバイル製品を HTML5 で作成しています。」 「ええ、最近は多くの人が Ap...
HTML ノードの追加と削除の簡単な例 HTML ノードの追加と削除の簡単な例<input t...
ウェブサイトのデザインを編集または変更する必要がある場合、CSS が重要な役割を果たします。 CSS...