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

推薦する

Vueがビデオアップロード機能を実装

この記事では、参考までに、ビデオアップロード機能を実現するためのVueの具体的なコードを紹介します。...

Apacheドメイン名設定の落とし穴の詳細な説明

私はApacheを使ったことがありません。仕事を始めてからはずっとnginxを使っていました(運用保...

組み込み Linux 開発環境で ping と nfs を構築するためのソリューション

1. 組み込みソフトウェアレベル 1) ブートローダ -> ブートローダ組み込みシステム全体の...

Vue3 における computed の新しい使用例のまとめ

vue3 での computed の使い方。vue3 は vue2 のオプション API と互換性が...

MySQLの複合インデックス方式の詳細な説明

どの DBMS でも、インデックスは最適化にとって最も重要な要素です。データ量が少ない場合、適切なイ...

React Hooksコンポーネント間で値を渡す方法の詳細な説明(tsを使用)

目次父から息子へ息子から父へクロスレベルコンポーネント(親から子孫)父から息子へpropsを通じて値...

React双方向データバインディングの原理についての簡単な説明

目次双方向データバインディングとは双方向データバインディングの実装データ影響ビュービューはデータに影...

DockerでRedisをデプロイして起動する方法

DockerでRedisをデプロイするまずLinuxにDockerをインストールし、次にDocker...

2つのシンプルなメニューナビゲーションバーの例

メニューバーの例 1: コードをコピーコードは次のとおりです。 <!DOCTYPE html ...

vue-cli4.5.xはプロジェクトを素早く構築します

1. vue-cliをインストールする vue.js で vue.js を実行します。 2. プロジ...

JavaScript のデシェイクとスロットリングの例

目次安定スロットル: 手ぶれ防止: 一定時間内に最後のタスクのみを実行します。スロットル: 一定期間...

MySQL の列から行への変換と年月グループ化の例

以下のように表示されます。 SELECT count(DISTINCT(a.rect_id)) zc...

Nginx で CDN サーバーを構築する方法の詳細な説明 (画像とテキスト)

Nginxのproxy_cacheを使用してキャッシュサーバーを構築する1: ngx_cache_...

フレックスレイアウトによるシームレスなスクロールのサンプルコード

この記事では、シームレスなスクロールを実現するためのフレックスレイアウトのサンプルコードを主に紹介し...

MySQLとPythonの相互作用の例

目次1. データを準備するデータテーブルを作成するデータの挿入2. SQLドリル1. SQL文の強化...