mysqlでjsonを使う方法

PHPz
PHPz転載
2023-05-30 09:46:052488ブラウズ

mysql フィールドのデータ型は json 形式をサポートしており、json 配列と json オブジェクトを直接保存できます。

1. json データを挿入するには 2 つの方法があります

1. 通常の文字列の形式で挿入し、json 形式に従う必要があります

2. 組み込みを使用します。関数 (JSON_OBJECT および JSON_ARRAY )JSON データを作成し、それを挿入します

2. JSON 内のフィールドのデータをクエリします

1. Column -> 'path' および JSON_EXTRACT(column, ' path') フォームを使用して、指定されたフィールド データの特定の詳細にアクセスします。 (*パスは一重引用符で囲む必要があることに注意してください)

列はクエリ対象のデータ フィールドの列名を表します;
path は JSON データへのアクセス パスで、パスの形式は $ です.path または $[ idx]。

$.path は JSON オブジェクト型データに使用されます;
$[idx] は JSON 配列型データに使用されます;
$ は JSON データ全体のルート ノードを表します;
pathはアクセス フィールド キーです。フィールド名にスペースが含まれる場合は、$."ニックネーム"; のように二重引用符で囲む必要があります (*中国語のフィールド名も二重引用符で囲む必要があることに注意してください)
[idx] は配列のインデックスです。

2、-> および JSON_EXTRACT クエリされるフィールド文字列タイプにも二重引用符が含まれるため、処理の層を実行する必要があります。 ; と JSON_UNQUOTE が削除され、エスケープ文字も削除されます。

JSON_UNQUOTE(JSON_EXTRACT(column, path)) は、column->>path

3 と同等です。マルチレベル クエリには 2 つの方法があります:

① column -> '$.key.childKey' サブセットフィールドにアクセスするためのパスドット接続メソッド

② JSON_EXTRACT(JSON_EXTRACT(column, path), path) JSON_EXTRACT ネストメソッド

③column -> '$[*].key' json 配列のすべてのキーをクエリして配列を返すことができます

3. JSON フィールドの条件付き検索

1. json 型フィールドを正確にクエリします

where column->'$.key' = value

2. ファジー クエリ JsonArray 型 field

where column->'$[*].key' like '% value %'

3. JsonArray タイプのフィールドを正確にクエリします

where JSON_CONTAINS(column,JSON_OBJECT('key', "value"))

4. マルチレベルのリレーションシップ, fuzzy Query all

where column->'$**.key' like '%value%'

IV. JSON フィールドの更新操作 1. フィールドの更新

JSON_SET(column, path, val[, path, val] ...) 更新または挿入

JSON_REPLACE(column, path, val[, path, val] ...) 更新のみ

2,新しいフィールドの追加

JSON_INSERT(column, path, val[, path, val] ...) 新しいフィールドを挿入します。既存のフィールドは変更されません

3. フィールドの削除

JSON_REMOVE(列, パス[, パス] ...) フィールドの削除

以上がmysqlでjsonを使う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。