MySQL (5.6 以下) の JSON 解析の詳細な例

MySQL (5.6 以下) の JSON 解析の詳細な例

MySQL(5.6以下)はjsonを解析します

#json 解析関数 DELIMITER $$
`json_extract_c`$$ が存在する場合は関数を削除します
関数 `json_extract_c` を作成します(
詳細テキスト、
必須フィールド VARCHAR (255)
) テキスト文字セット latin1 を返します
始める
SET details = SUBSTRING_INDEX(details, "{", -1);
SET details = SUBSTRING_INDEX(details, "}", 1);
リターントリム(
  両方 '"' SUBSTRING_INDEX(
    SUBSTRING_INDEX(
      SUBSTRING_INDEX(
        詳細、
        連結(
'"'、
          SUBSTRING_INDEX(必須フィールド,'$.', -1),
':'
        )、
-1
      )、
',',
1
    )、
':',
-1
  )
) ;
終わり$$
区切り文字 ;
例:
アイテム制限 100 から json_extract_c(json, "$.totalDays")、json を選択します。

セルフテスト

テーブル `json_test` を作成します (
 `id` int(11) デフォルト NULL,
 `person_desc` テキスト COLLATE utf8mb4_unicode_ci
) エンジン=InnoDB デフォルト文字セット=utf8mb4 照合=utf8mb4_unicode_ci;
INTO json_test values(2,'{"firstName":"Sergei","lastName":"Rachmaninoff","instrument":"piano"}');
json_test から id、json_extract_c(person_desc、'$.lastName') を "keys" として選択します。

改善: キーが見つからない場合は '' を返します。以前は、キーが見つからない場合は最初の値が見つかりました。

CREATE DEFINER=`zhangfen`@`%` FUNCTION `json_extract_c`(
詳細テキスト、
必須フィールド VARCHAR (255)
) テキストCHARSET latin1を返します
始める
SET details = SUBSTRING_INDEX(details, "{", -1);
SET details = SUBSTRING_INDEX(details, "}", 1);
リターントリム(
  両方 '"' SUBSTRING_INDEX(
    SUBSTRING_INDEX(
      SUBSTRING_INDEX(
        CONCAT('"":"",',詳細),
        連結(
          '"'、
          SUBSTRING_INDEX(必須フィールド,'$.', -1),
          ':'
        )、
        -1
      )、
      ',',
      1
    )、
    ':',
    -1
  )
) ;
終わり

要約する

上記は、編集者が紹介したMySQL(5.6以下)でJSONを解析する方法の詳細な例です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • MySQL 5.7 における基本的な JSON 操作ガイド
  • MySQL 5.7 JSON 型の使用の詳細
  • Mysql5.7 で JSON 操作関数を使用する手順
  • MySQL 5.7 JSON形式の取得に関する簡単な説明
  • mysql5.6 以前のデータベースで json をクエリする方法
  • MySQLにおけるJSON系列操作関数の詳しい説明
  • MySQL 操作: JSON データ型の操作
  • MySQL の JSON 挿入の問題
  • mysql5.7 の新しい json フィールド タイプの使用例の分析

<<:  VMware 仮想マシンのインストール win7 オペレーティング システム チュートリアル ダイアグラム

>>:  vue-routeルーティング管理のインストールと設定方法

推薦する

HTML要素にフォーカスを設定する方法

コードをコピーコードは次のとおりです。 <本文<フォームアクション="&quo...

Linux teeコマンドの使い方の詳しい説明

teeコマンドは主にstandout(標準出力ストリーム、通常はコマンド実行ウィンドウ)に出力し、同...

Django+vue 登録とログインのサンプルコード

登録するフロントエンドは、vue の axios を使用して値を渡し、取得したアカウントとパスワード...

nodejs で worker_threads を使用して新しいスレッドを作成する方法

導入前の記事で述べたように、NodeJS には 2 種類のスレッドがあります。1 つは、ユーザー リ...

Windows7 での Mysql5.7 my.ini ファイルの読み込みパスとデータの場所の変更方法

更新: MySQL の公式 Web サイトにアクセスして MySQL インストーラーをインストールし...

Windows Server 2008R2 ファイル サーバーを Windows Server 2016 にアップグレードする

ユーザー組織には、ドメインに参加している 2 台の Windows Server 2008 R2 フ...

Docker で複数のアプリケーション サイトをプロキシするために Nginx を使用する方法

序文エージェントの役割は何ですか? - 複数のドメイン名が同じサーバーに解決される- 1つのサーバー...

ウェブ開発におけるクロスドメインの理由に対する複数のソリューション

目次クロスドメインの理由JSONP Nginxソリューションバックエンドソリューションクロスドメイン...

TomcatのmaxPostSize属性を設定する際に注意する必要がある問題を解決する

必要:近い将来、大容量ファイルのアップロード機能を実装します。フロントエンドフレームワークのアップロ...

HTML&CSS&JS 互換性ツリー (IE、Firefox、Chrome)

Web デザインにおけるツリーとは何ですか?簡単に言うと、リンクをクリックするとサブディレクトリが展...

MySQLデータベースでスロークエリログを有効にする方法の詳細な説明

データベースはスロークエリログを有効にします設定ファイルを変更する設定ファイルmy.iniに次の2つ...

Dockerは公式Redisイメージをインストールし、パスワード認証を有効にします

参考: Docker 公式 Redis ドキュメント1. 特別なバージョン要件がある場合は、redi...

Windows で mysql 8.0.12 をインストールするための詳細なチュートリアル

この記事では、MySQL 8.0.12のインストール方法に関する詳細なチュートリアルを参考までに紹介...

MySQL最新バージョン8.0.17解凍版インストールチュートリアル

個人的にはインストール版よりも解凍版の方がインストールしやすいと思います。早速、解凍版のインストール...

画像内のrarファイルを隠す方法

このロゴを .rar ファイルとしてローカルに保存し、解凍して効果を確認することができます。よりシン...