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

推薦する

WeChatミニプログラムでEchartとサブパッケージを使用するための完全な手順

序文休日は終わっていますが、それは別の形で(お腹に触れることで)私たちに現れます。ミニプログラムでデ...

vscodeでnpmを使用してbabelをインストールする方法

序文前回の記事ではNode.jsのインストールと設定を紹介しました。今回はVScodeでbableを...

Nginx の動的および静的分離実装ケースのコード分析

静的と動的の分離動的リクエストと静的リクエストはミドルウェアを通じて分離され、不要なリクエストの消費...

MySql クライアントが数秒で終了する問題を解決する (my.ini が見つからない)

問題の説明 (環境: windows7、MySql8.0)今日、MySql をインストールした後、M...

カレンダー効果を実現するJavaScript

この記事では、カレンダー効果を実現するためのJavaScriptの具体的なコードを参考までに紹介しま...

MySQLデータベースのマスタースレーブレプリケーションの長い遅延に対する解決策

序文MySQL マスター スレーブ レプリケーションの遅延は、業界では長年の問題となっています。遅延...

Linux でタイムアウト付きの接続関数を試す

前回の記事では、Windows でタイムアウトを試してみました。この記事では、Linux で試してみ...

MySQLデュアルマシンホットスタンバイと負荷分散の実装手順の詳細説明

MySQL データベースには増分バックアップ メカニズムはありませんが、マスター データベース内のす...

Vueは新しいウィンドウを開き、パラメータ転送のグラフィック例を実装します。

私が実現したい機能は、新しいウィンドウを開いて新しいページを表示することですが、パラメータを渡す必要...

JDBC が MySQL に接続して中国語を処理するときに文字化けする問題の解決方法の詳細説明

JDBC が MySQL に接続して中国語を処理するときに文字化けする問題の解決方法の詳細説明最近、...

IDEA が Docker を統合してリモート展開を実現するための詳細な手順

1. Dockerサーバーへのリモートアクセスを有効にするdocker が配置されているリモート サ...

MySQL count(1)、count(*)、count(field)の違い

目次1. COUNTの初見2. COUNT(フィールド)、COUNT(定数)、COUNT(*)の違い...

MySQL データベース トランザクション例のチュートリアル

目次1. トランザクションとは何ですか? 2. トランザクションに関連するステートメントは、挿入、削...

MySQL で重複レコードを見つけて削除する方法

みなさんこんにちは。私は技術の話ばかりして髪を切らない先生のトニーです。何らかの歴史的な理由や誤操作...

フレックスレイアウトの改行スペースでの align-content の使用

1. この記事で実装した効果図は以下のとおりです。レイアウトの右側に Flex レイアウトを使用し、...