MySQL クエリ フィールド タイプが json の場合の 2 つのクエリ メソッド

MySQL クエリ フィールド タイプが json の場合の 2 つのクエリ メソッド

テーブル構造は次のとおりです。

id varchar(32) 
情報JSON

データ:

id = 1
info = {"age": "18","disname":"シャオミン"}

--------------------------------------------

ここで、info 内の disanme の値を取得する必要があります。クエリ メソッドは次のとおりです。

1.

tableName t から disname として t.id、JSON_EXTRACT(t.info、'$.disname') を選択します (1=1)

結果:

id = 1、名前変更 = "シャオミン"

上記の SQL ステートメントにある disname 値には二重引用符が含まれています。二重引用符が必要ない場合もあります。その場合は、次の方法を使用する必要があります。

2.

t.id,t.info ->> '$.disname' をテーブル名 t から disname として選択します (1=1)

結果:

id = 1、名前変更 = シャオミン

ps: MySQLクエリのjsonフィールドを見てみましょう

テーブルステートメントの作成

テーブルを作成 
 テーブル「test」を作成します(
  `id` int(10) ,
  `user` json DEFAULT NULL COMMENT 'ユーザー情報',
  主キー (`id`)
 ) エンジン=InnoDB AUTO_INCREMENT=6 デフォルト文字セット=utf8

データの挿入

JSONデータの外側では、区別するために一重引用符が必要であることに注意してください。

test (id,USER) に値(1,'{"name": "tom", "age": 18, "money": 3000}')を挿入します。
test (id,USER) に VALUES(2,'{"name": "jack", "age": 20, "money": 100}') を挿入します。
test (id,USER) に VALUES(3,'{"name": "tony", "age": 21, "money": 100}') を挿入します。
test (id,USER) に VALUES(4,'{"name": "danny", "age": 21, "money": 20}') を挿入します。
test (id,USER) に VALUES(5,'{"name": "janny", "age": 23, "money": 20}') を挿入します。

表のデータは以下のとおりです

クエリステートメント

SELECT id,JSON_EXTRACT(USER,'$.name')FROM test;

クエリの結果は次のとおりです

要約する

上記は、MySQL クエリ フィールド タイプが json の場合にエディターが紹介する 2 つのクエリ メソッドです。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。エディターがすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • MySql ファジークエリ JSON キーワード取得ソリューションの例
  • Mysql クエリの結果セットを JSON データに変換するサンプル コード
  • MySQL で JSON 形式のフィールドをクエリする詳細な説明
  • MySQL json 形式のデータクエリ操作
  • MysqlクエリJSON結果に関連する関数の概要
  • MySQL フルテキスト インデックス、ジョイント インデックス、Like クエリ、JSON クエリのうち、どれが高速ですか?
  • Python クエリ mysql、json インスタンスを返す
  • mysql5.6 以前のデータベースで json をクエリする方法
  • Mysqlは保存されたJSON文字列内のデータを直接クエリします

<<:  node.js で EventEmitter をカスタマイズする方法

>>:  Docker を使用して nginx で tomcat クラスターを構築する方法 (画像とテキスト付き)

推薦する

WeChatアプレットのスクロールビューが左右連動効果を実現

WeChatアプレットはスクロールビューを使用して左右のリンクを実現します。参考までに、具体的な内容...

CocosCreator で http と WebSocket を使用する方法

目次1. HTTPGET 2. HTTP POSTウェブソケット4. Egretのhttpとwebs...

列名を知らなくてもMySQLインジェクションを詳細に解説

序文最近、穴を掘ってスペースを作っているだけなので、心が空っぽになっているように感じます。テクノロジ...

JSフロントエンドモジュール化のいくつかの仕様についての簡単な説明

目次序文フロントエンドモジュール開発の価値厄介な名前の競合面倒なファイル依存関係モジュール化の利点C...

Ubuntu 20.04にvncserverをインストールする方法

Ubuntu 20.04は2020年4月に正式にリリースされました。本日、ミラーシステムを正式にイン...

Reactソースコードにおけるビット演算について詳しく説明します

目次序文いくつかの一般的なビット操作ビットAND (&)ビットOR (|)ビット否定(~)マ...

Docker - コンテナマウントディレクトリを変更する3つの方法のまとめ

方法 1: 設定ファイルを変更する (docker サービスを停止する必要があります) 1. doc...

MySQL 最適化のケーススタディ

1. 背景Youzan の各 OLTP データベース インスタンスには、実行時間が特定のしきい値を超...

Webフロントエンドのパフォーマンス最適化

ウェブフロントエンド最適化のベストプラクティス: コンテンツWebフロントエンド最適化のベストプラク...

mysql 5.7.18 winx64 無料インストール設定方法

1. ダウンロード2. 減圧3. パス環境変数を追加し、mysqlが配置されているbinディレクトリ...

Linux環境にJDKとTomcatをインストールする詳細な手順

目次1. JDKをインストールする手動インストール2. トムキャット1. JDKをインストールする注...

Linux での MySQL のインストールに関する詳細なチュートリアル

1. MySQLサービスをシャットダウンする# service mysqld stop 2. rpm...

WeChatアプレットAmapマルチポイントルート計画プロセス例の詳細な説明

電話Amap API を呼び出す方法は? Amap が https://lbs.amap.com/a...

CentOS 7.5 に Docker をインストールする詳細なチュートリアル

Docker入門Docker は、アプリケーションをより速く配信するのに役立つオープンソースのコンテ...

MySQL での重複キー更新時の replace into と insert into の使用法と相違点の分析

この記事では、MySQL での重複キー更新時の replace into と insert into...