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ルーティング管理のインストールと設定方法

推薦する

さまざまなマウスの形状を表現する方法

<a href = "http://" style = "cur...

JavaScript における async と await の使い方とメソッド

JS の async 関数と await キーワード 関数ヘルワールド() { 「こんにちは!美しい...

Web デザイン TabIndex 要素

TabIndex は、Tab キーを押して、定義された TabIndex 要素を順番に取得し、各要素...

HTML テーブル マークアップ チュートリアル (10): セル パディング属性 CELLPADDING

セルのパディングは、セルの内容と境界線の間の距離です。基本的な構文<TABLE セルパディング...

シェルスクリプトを使用して Docker サービスを一括で開始および停止する

目次Dockerを起動するDockerを停止するPython 呼び出しスクリプト最近、日々のテストで...

MySQLでテーブルインデックスを構築する方法

目次複数の種類のフィルタリングをサポート複数の範囲のクエリを避ける並べ替えを最適化するインデックスの...

MySQLがbinlogファイルを手動で登録し、マスタースレーブ異常を引き起こす理由

1. 問題の原因友人の @水米田 から、POSITION に基づくマスタースレーブについて質問があり...

フロントエンドJavaScriptは関数のカリー化を完全に理解している

目次1. カレーとは何か2. カレーの用途3. カリー化ユーティリティ関数をカプセル化する方法 1....

MySQLがクエリキャッシュをキャンセルした理由

MySQL には以前、クエリ キャッシュ (Query Cache) がありました。8.0 以降では...

Bootstrap 3.0 学習ノート グリッドシステム事例

序文前回の記事では、主にグリッドシステムの基本原理を学び、簡単なケースを通してその原理を実践しました...

MySQL における USING と HAVING の使用法の簡単な分析

この記事では、例を使用して MySQL での USING と HAVING の使用方法を説明します。...

MySQL がデュアルマスターで構成されている場合にデータループの競合を回避する方法

あなたはこの質問について考えたことがあるでしょうか?デュアルアクティブが構成されている場合、データル...

MySQLでバッチを更新するいくつかの方法

通常、フィールド値を更新するには次の SQL ステートメントを使用します。 mytable を更新し...

Mysql5.7.14 インストールと設定方法操作グラフィックチュートリアル(パスワード問題解決)

この記事は主に、以前のインストール方法を使用して MySQL 5.7.14 をインストールするときに...

Centos7.3 Nginx をインストールして展開し、https を設定する方法

設置環境1. gccのインストールnginxをインストールするには、まず公式サイトからダウンロードし...