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 クラスターを構築する方法 (画像とテキスト付き)

推薦する

ウェブページを自動更新するための 3 つのコード

実際、この効果を実現するのは非常に簡単で、この効果は特殊効果と呼ぶことすらできません。次のコードを ...

Webフロントエンドスキル概要(個人の実務経験)

1. 今日、ページを作っているときに、矢印を中央に配置する効果に遭遇しました。クリック領域を大きくし...

CSS3 マウスホバー遷移ズーム効果

以下は、純粋な CSS で記述された画像マウスホバーズーム効果です。実際、基本原理は非常に単純です。...

mysql8.0 でユーザーを作成して権限を付与する際のエラーの解決方法の詳細な説明

質問1:エラーを報告する書き込み方法: GRANT OPTION を使用して、'123123...

CSSに基づいてマウス入力の方向を決定する

以前、フロントエンド技術グループに所属していたとき、グループのメンバーが面接中に問題に遭遇したと言っ...

CSSは、他のレイヤーを変更せずに、多層ネスト構造の最外層を回転させる効果を実現します。

次のようなシナリオがあります。円形のコンテナで、最も外側のコンテナの背景が円弧になっています。内側の...

プライベートDockerリポジトリであるHarborをインストールするための詳細な手順

Harborのインストールは非常に簡単ですが、Dockerログインで行き詰まってしまいました。このブ...

Vue+Openlayerはmodifyを使用して要素の完全なコードを変更します

Vue+Openlayerはmodifyを使って要素を変更します。具体的な内容は以下のとおりです。 ...

MySQL 8.0 のデフォルトのデータディレクトリを変更する (設定なしの簡単な操作)

使用シナリオ: Alibaba Cloud を使用しており、データディスクを別途購入しました (大容...

CSS3 の新しいレイアウト: flex の詳細な説明

Flexの基本概念フレックス レイアウト (フレックスはフレキシブル ボックスの略)、エラスティック...

Linux で gdb を使用してコア ファイルをデバッグする方法

1.コアファイルプログラム実行中にセグメンテーション エラー (コア ダンプ) が発生すると、プログ...

数ステップでサイバーパンク2077風の視覚効果を実現するCSS

背景記事を始める前に、賽博朋克とは何か、賽博朋克2077とは何かを簡単に理解しましょう。サイバーパン...

カスタム変数を使用した MySQL クエリの最適化

目次並べ替えクエリの最適化変更されたばかりのデータ行を繰り返し取得しないようにする遅延ロードされた結...

動的な色切り替えの実装コードをサポートするために、CSS で SVG 画像を参照します。

表示する svg 画像を追加すると、React はファイルが見つからないというメッセージを表示します...