mysql5.6 以前のデータベースで json をクエリする方法

mysql5.6 以前のデータベースで json をクエリする方法

MySQLにデータを保存するとき、乱雑であまり使用されないデータがJSONフィールドに投げ込まれることがあります。

MySQL が JSON を保存するときに注意すべき形式について説明します。

1: 保存時に中国語のテキストをトランスコードしないように注意してください。トランスコードするとクエリが非常に面倒になります。圧縮するときに、最後に追加のパラメータを追加すると、より便利になります。

json_encode(配列(),JSON_UNESCAPED_UNICODE);

利点: この方法で検索すると、中国語の文字がよりよく一致する

2: フィールドを統一する。保存時にフィールド名を決めるのがベストです。一人で大きなプロジェクトを開発するのは不可能です。フィールドを統一することで、フィールドの不一致による不要なトラブルやバグを大幅に減らすことができます(私はこれで損をしたことがありますが、プロジェクトをみんなでやるときに考えていなかったため、急いでいたためにその後のテストや修正に開発よりも時間がかかってしまいました)

メリット: クエリデータのコード処理量を削減し、プロジェクトページの表示バグを削減します。

3: 1次元配列を保存できる場合は、2次元配列を保存しないでください。

理由: 2 次元配列は制御不能です。これは、依然として需要に基づいています。

個人的な癖です。とにかくこれが私の癖です、ハハハ。不満なら私を殴ってもいいですよ!

では本題に入りましょう。もちろん、クエリでは次のように使用します。

たとえば、テーブルにコンテンツ フィールドがあるとします。ここで、actid が 123456789 であるコンテンツ フィールドを見つける必要があります。

5.7: テーブルから * を選択します where content->'$.actid' like '%123456789%';
5.6: '%"actid":"123456789"%' のような内容のテーブルから * を選択します

これは一目でわかるはずです。教育は間違いなくフルセットであり、ヘルスケアでもあります。そのため、コードの中には、どのように使用するかを言う人もいます

$id = "123456789";
$sql="'%\"actid":\""$id"\"%\' のような内容のテーブルから * を選択します";

上記は、MySQL 5.6 以前のデータベースで JSON をクエリする方法について紹介したものです。お役に立てば幸いです。ご質問がある場合は、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • MySql ファジークエリ JSON キーワード取得ソリューションの例
  • Mysql クエリの結果セットを JSON データに変換するサンプル コード
  • MySQL で JSON 形式のフィールドをクエリする詳細な説明
  • MySQL json 形式のデータクエリ操作
  • MysqlクエリJSON結果に関連する関数の概要
  • MySQL フルテキスト インデックス、ジョイント インデックス、Like クエリ、JSON クエリのうち、どれが高速ですか?
  • MySQL クエリ フィールド タイプが json の場合の 2 つのクエリ メソッド
  • Python クエリ mysql、json インスタンスを返す
  • Mysqlは保存されたJSON文字列内のデータを直接クエリします

<<:  Vueはechartsを使用して組織図を描画します

>>:  Docker で複数の MySQL コンテナを作成して実行する方法の例

推薦する

テーブルを作成するための HTML dl、dt、dd タグとテーブル作成テーブル

ウェブサイトの開発とメンテナンスのコストが削減されるだけでなく、コードもよりセマンティックになります...

Navicat PremiumでSQLファイルをインポートする方法

今日、最終プロジェクトに取り組み始めましたが、今年はMySQLデータベースを使用したため、Navic...

Ubuntu の Python で C/C++ メソッドを呼び出すダイナミック リンク ライブラリの詳細な説明

ブーストをインストールPython から C/C++ を呼び出す方法はたくさんあります。この記事では...

Linux のパスワードを紛失した場合にリセットする方法

1. スタートアップメニューでは、カーソルを最初の行に移動します - eを押します 2. UTF-8...

Vueプロジェクトを大画面に適応させる方法の例

レムの簡単な分析まず、remはCSS単位です。pxの固定ピクセル単位と比較すると、remはより柔軟性...

Reactのヒントはフックの依存関係の問題を解消する方法を教えます

reactプロジェクトで非常に一般的なシナリオ: const [watchValue、setWatc...

CSSスタイルのカスケーディングルールの詳細な説明

CSS スタイル ルール構文スタイルは、CSS の基本単位です。各スタイル ルールは、セレクターと宣...

MacOS Catalina アップグレード後の VMware ブラック スクリーン問題に対する完璧な解決策の詳細な説明

MacOS Catalina アップグレード後の VMware ブラック スクリーンに対する完璧なソ...

Elasticsearch を使用する際の一般的な問題の解決策

1. redis で使用すると Netty の起動競合が発生するため、***Application ...

IE 環境での css-vars-ponyfill の使用に関する詳細な説明 (nextjs ビルド)

css-vars-ポニーフィルCSS 変数を使用して Web ページのスキニングを実現すると、互換...

VMware Workstation Pro は Win10 ピュア バージョンのオペレーティング システムをインストールします

この記事では、VMware Workstation Pro で Win10 オペレーティング システ...

EF (Entity Framework) の挿入または更新データ エラーの解決方法

エラー メッセージ:ストアの更新、挿入、または削除ステートメントが予期しない行数 (0) に影響を与...

JavaScriptイテレータを学ぶ

目次導入js のイテレータはどのように見えるか反復プロトコル反復可能なプロトコルイテレータプロトコル...

Vueバインディングオブジェクトと配列変数を変更した後にレンダリングできない問題の解決策

プロジェクトシナリオ:ページ表示には <ul> タグがあります。リストデータを動的に表示...

マインスイーパゲームを実装するための jQuery プラグイン (1)

この記事では、jQueryプラグインを使用したマインスイーパゲームの最初の記事の具体的なコードを参考...