JSONデータをmysqlに保存して照会する方法は?
MySQL 5.7以降を使用すると、JSONデータ型を介してJSONデータを直接保存および照会できます。 2. JSON列を定義し、テーブルを作成するときにLegal JSONデータを挿入すると、MySQLはその有効性を自動的に確認します。 3。->および - >>演算子を使用して、JSONフィールド値を抽出します。 4. JSON_CONTAINS、CASTなどの関数を介して条項を介してJSONコンテンツを検索し、数値比較にはタイプ変換が必要であることに注意してください。 5。JSON_SET、JSON_REPLACE、JSON_REMOVE機能を使用して、JSONフィールドを変更します。 6。JSON列を直接インデックス化することはできませんが、クエリパフォーマンスを改善するために列(json_unquoteに基づく仮想列など)を生成することでインデックスを作成できます。 7.頻繁にクエリのフィールドを生成された列に抽出し、大規模なJSONオブジェクトクエリへの過度の依存を避け、コアデータ構造を維持して柔軟性とパフォーマンスのバランスを実現するためのインデックスを確立することをお勧めします。
MySQL 5.7以降を使用している場合、JSONデータをMySQLに保存およびクエリすることは簡単です。これらのバージョンにはJSONデータ型のサポートが組み込まれているためです。これにより、SQLクエリ機能の恩恵を受けながら、半構造化されたデータを柔軟に保存できます。効果的に行う方法は次のとおりです。

1。MySQLにJSONデータを保存します
JSONを保存するには、テーブルに列を定義するときにJSON
データ型を使用します。
JSON列のあるテーブルを作成します
テーブルユーザーを作成します( id int auto_incrementプライマリキー、 名前varchar(100)、 プロフィールJSON );
JSONデータを挿入します
有効なJSONオブジェクトまたは配列を挿入できます。

ユーザーに挿入(名前、プロファイル)値( 「アリス」、 '{ 「年齢」:30、 「都市」:「ニューヨーク」、 「趣味」:[「読書」、「サイクリング」]、 "接触": { 「電子メール」:「alice@example.com」、 「電話」:「123-456-7890」 } } ' );
MySQLは、挿入時にJSONを検証します。無効なJSONはエラーを引き起こします。
2。JSONデータのクエリ
MySQLは、JSONフィールド内で抽出および検索する機能と演算子を提供します。

->
および->>
を使用して値を抽出します
column->'$.path'
json値を返します(文字列の引用符付き)。-
column->>'$.path'
引用されていないスカラー値を返します(比較に適しています)。
- 完全な連絡先オブジェクトを取得します [プロファイル] - > '$を選択します。' name = 'Alice'をユーザーから連絡として連絡します。 - 引用されていないメールを取得します プロファイル - >> '$。contact.email'は、name = 'alice'をユーザーから電子メールとして選択します。 - 年齢と街を取得します 選択します プロフィール - >> '$。年齢'年齢、 プロフィール - >> '$。都市'都市として ユーザーから;
JSON内で検索します
WHERE
でJSON_CONTAINS()
またはパス式を使用します。
- 趣味で「サイクリング」しているユーザーを見つけます ユーザーから名前を選択します json_contains(プロファイル - > '$。趣味'、 '"Cycling"'); - 25歳以上のユーザーを見つけます ユーザーから名前を選択します ここで、cast(プロファイル - >> '$。年齢' unsigned)> 25; - ニューヨークのユーザーを見つけます ユーザーから名前を選択します ここでプロフィール - >> '$。都市' = 'ニューヨーク';
注:
->>
テキストを返すため、数値比較のために値(例:SIGNED
、UNSIGNED
、またはDECIMAL
)をキャストする必要がある場合があります。
3。JSONフィールドの更新
JSON_SET()
、 JSON_REPLACE()
、またはJSON_REMOVE()
を使用して、jsonコンテンツを変更します。
- フィールドを追加または更新します ユーザーを更新します プロファイル= json_set(プロファイル、 '$ .age'、31、 '$ .city'、 'boston') where name = 'Alice'; - 配列に追加します ユーザーを更新します プロファイルを設定= json_array_append(プロフィール、 '$ .hobbies'、 '水泳') where name = 'Alice'; - フィールドを削除します ユーザーを更新します プロファイルを設定= json_remove(プロファイル、 '$ .contact.phone') where name = 'Alice';
4。JSONデータのインデックス付け(間接的に)
JSON列を直接インデックスすることはできませんが、生成された(仮想)列を作成してそれらをインデックスすることができます。
例:JSON内の電子メールフィールドにインデックスを付けます
テーブルユーザーを変更します 列メールvarchar(255)を追加する 常に生成されます(json_unquote(profile- >> '$。contact.email'))); ユーザーでインデックスIDX_EMAILを作成(電子メール);
これで、 email
でフィルタリングをクエリすることができます。インデックスを使用できます。
email = 'alice@example.com';
これにより、JSONベースの頻繁なLookupsのパフォーマンスが大幅に向上します。
ベストプラクティス
- JSONを使用して、柔軟な属性またはオプションの属性(ユーザー設定、設定など)を使用します。
- 通常の列として頻繁にクエリまたはクリティカルフィールド(電子メール、ステータスなど)を保持するか、インデックス付きの生成された列を使用します。
- 頻繁に照会する場合は、大きなJSONブロブを保存しないでください。可能な場合は正常になります。
- エラーを防ぐために、アプリケーションのJSON構造を検証します。
JSONをMySQLに保存すると、パフォーマンスをあまり犠牲にすることなく、特に生成された列と適切なインデックス作成を組み合わせることなく柔軟性が得られます。これは、進化するスキーマや、剛性のあるテーブルにきちんと適合しない階層データに最適です。
以上がJSONデータをmysqlに保存して照会する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

PHP 開発のヒント: Redis を使用して MySQL クエリ結果をキャッシュする方法 はじめに: Web 開発のプロセスにおいて、データベース クエリは一般的な操作の 1 つです。ただし、データベース クエリを頻繁に行うと、パフォーマンスの問題が発生し、Web ページの読み込み速度に影響を与える可能性があります。クエリ効率を向上させるために、Redis をキャッシュとして使用し、頻繁にクエリされるデータを Redis に置くことで、MySQL へのクエリ数が削減され、Web ページの応答速度が向上します。この記事では、Redis を使用して MySQL クエリ結果をキャッシュする方法の開発について紹介します。

PHP と MySQL は JSON データをどのように処理しますか?最新の Web アプリケーションでは、データの保存と交換に JSON (JavaScriptObjectNotation) がよく使用されます。 PHP と MySQL は一般的に使用される 2 つのテクノロジであり、これらを使用して JSON データを処理する方法はよくある質問です。この記事では、PHP と MySQL を使用して JSON データを処理する方法を紹介し、いくつかのコード例を示します。 1. MySQL から JSON にデータをエクスポートします。

PHP 開発のヒント: Memcached を使用して MySQL クエリ結果をキャッシュする方法 Memcached は、データベースの負荷を軽減し、アプリケーションのパフォーマンスを向上させるために使用できる高性能分散メモリ オブジェクト キャッシュ システムです。 PHP 開発では、頻繁にデータベースにクエリを実行する必要がある状況がよくありますが、このとき、Memcached を使用してクエリ結果をキャッシュすることで、システムの応答速度が大幅に向上します。この記事では、Memcached を使用して MySQL クエリ結果をキャッシュする方法を共有します。

FastAPI のリクエスト本文を使用して受信 JSON データを解析する方法 FastAPI は、豊富な機能と高パフォーマンスの非同期サポートを提供する最新の Python ベースの Web フレームワークです。 FastAPI を使用して HTTP リクエストを処理する場合、多くの場合、受信した JSON データを解析する必要があります。この記事では、リクエスト本文を使用して FastAPI で受信した JSON データを解析する方法を紹介し、対応するコード例を示します。依存関係をインポートする まず、FastAPI 依存関係と JS をインポートする必要があります。

PHP 開発のヒント: Xcache を使用して MySQL クエリ結果をキャッシュする方法 はじめに: Web アプリケーションでは、多くの場合、多数のデータベース クエリ操作を実行する必要があります。これらのクエリ操作は、大量のシステム リソースと時間を消費する可能性があります。パフォーマンスを向上させ、サーバーの負荷を軽減するために、キャッシュを使用してクエリ結果を保存し、再利用できます。この記事では、Xcache 拡張機能を使用して MySQL クエリの結果をキャッシュし、Web アプリケーションの応答性とパフォーマンスを向上させる方法について説明します。 Xキャッシュの概要

MySQL は現在最も人気のあるリレーショナル データベース システムの 1 つであり、高いパフォーマンス、セキュリティ、拡張性の特徴を備えており、さまざまな業界のデータ管理業務で広く使用されています。中でもデータクエリはMySQLの最も基本的な操作の一つであり、日々の開発において頻繁に触れる操作でもあります。この記事では、誰もが MySQL のデータ クエリ テクノロジをよりよく習得できるように、SQL ステートメントの使用、インデックス作成、最適化などを含む、MySQL でのデータ クエリ実装のテクノロジを紹介します。 SQL ステートメントの使用 SQL は構造化クエリ言語 (St

最新のソフトウェア開発では、データ処理とクエリ操作が不可欠です。 MySQL は、リレーショナル データベース管理システムとして、ほとんどのエンタープライズ レベルのアプリケーションで重要な役割を果たします。 Go 言語は、効率的で高速なプログラミング言語として、データ処理やクエリ操作での使用が増えています。この記事では、Go 言語を使用して、データベース接続、クエリ ステートメントの構築と実行などを含む、高パフォーマンスの MySQL データ クエリ操作を作成する方法を紹介します。 1. MySQLを操作するためのGo言語によるデータベース接続

PHP インターフェースが JSON 形式のデータを返せない問題の解決策 開発プロセスでは、PHP インターフェースを使用して JSON 形式のデータを返す必要がある状況によく遭遇します。ただし、場合によっては、JSON 形式のデータを正しく返せないという問題が発生することがあります。この記事では、いくつかの解決策を紹介し、具体的なコード例を示します。問題分析 PHP を使用してインターフェイスを作成する場合、通常はデータを JSON 形式に変換し、それをフロントエンド ページまたは他のアプリケーションに返す必要があります。しかし、場合によっては、次の問題が発生することがあります。 インターフェイス
