ホームページ データベース mysql チュートリアル Mysql5.7でのJSON関数の操作例を詳しく解説

Mysql5.7でのJSON関数の操作例を詳しく解説

Jul 27, 2017 pm 03:33 PM
javascript json

この記事では、mysql5.7 で json を操作する関数の使用方法と関連する例を紹介します。必要な友達は参考にしてください。

前書き

JSON は言語を使用します。 - 独立したテキスト形式。XML に似ていますが、XML よりもシンプルで読みやすく、書きやすいです。マシンによる解析と生成が容易で、ネットワーク帯域幅の送信が削減されます。

JSON の形式は非常に単純です: 名前/キー値。 MySQL の以前のバージョンでは、このようなストレージを実装するには、VARCHAR または TEXT ラージ テキストが使用されていました。 MySQL 5.7 のリリース後、JSON データ型と、この型の検索およびその他の関数解析が特別に設計されました。

実際にやってみましょう。

JSON フィールドを含むテーブルを作成します

たとえば、「記事」テーブル、フィールドには

id、タイトル、タグが含まれます

記事には複数のタグがあり、タグは JSON タイプに設定できます

テーブルを作成するステートメントは次のとおりです:


CREATE TABLE article` (
 id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
title` varchar (200) NOT NULL ,
 tags` json DEFAULT NULL ,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
ログイン後にコピー

Insert data

JSON コンテンツを含むデータを挿入し、insert ステートメントを実行します:


INSERT INTO article` (`title`, `tags`)
VALUES (
'体验 Mysql JSON' ,
'["Mysql", "Database"]'
);
ログイン後にコピー

ここに挿入されるのは、JOSN 配列 ["Mysql", "Database "]

記事テーブル内のすべてのコンテンツをクエリすると、新しく挿入されたデータが表示されます

クエリ

JSON 関数を使用して 2 つの単純なクエリを作成します

1.「Mysql」タグを持つすべての記事を検索します


SELECT * FROM article`
WHERE JSON_CONTAINS(tags, '["Mysql"]' );
ログイン後にコピー

2. タグで「Data」で始まる記事を検索します


SELECT * FROM article`
WHERE JSON_SEARCH(tags, 'one' , 'Data%' ) IS NOT NULL ;
ログイン後にコピー

JSON_SEARCH 関数の 3 つのパラメーターの意味:

1. 検索対象のドキュメント

2. , 2 つのオプションがあり、「one」は条件に一致する最初のものを検索し、「all」は条件に一致するすべてのものを検索します

3. 検索条件

JSON Path

JSON Path は、ターゲットフィールドを見つけるために使用されます。


SELECT JSON_EXTRACT(
'{"id": 1, "name": "mysql"}' ,
'$.name'
);
ログイン後にコピー

などのドキュメント内 結果は次のようになります: mysql

JSON_EXTRACT() は JSON 抽出関数、$.name は JSON パスで、配置されたドキュメントの名前フィールドを示します

JSON パスは次で始まります$、ここにいくつかの例があります


{
"num" : 123,
"arr" : [1, 2],
"obj" : {
"a" : 3,
"b" : 4
}
}
$.num //结果:123
$.arr //结果:[1, 2]
$.arr[1] //结果:1
$.obj.a //结果:3
$**.b //结果:4
ログイン後にコピー

JSONパスを使用したクエリの例


SELECT
tags-> "$[0]" as 'tag'
FROM article`;
ログイン後にコピー

データを更新します

例えば、記事に「dev」タグを追加したい場合、更新条件は「Mysql」タグはすでに含まれており、「dev」タグのデータはまだありません

更新ステートメントは次のとおりです:


UPDATE article`
SET tags = JSON_MERGE(tags, '["dev"]' )
WHERE
JSON_SEARCH(tags, 'one' , 'dev' ) IS NULL
AND
JSON_SEARCH(tags, 'one' , 'Mysql' ) IS NOT NULL ;
ログイン後にコピー

「dev」ラベルが正常に追加されたことがわかります

別の例として、「Mysql」ラベルを「Mysql 5.7.13」に更新する場合、更新ステートメントは次のようになります:

UPDATE Article` set tags = JSON_SET(tags, '$[0] ' , 'Mysql 5.7.13' ) ;<code>UPDATE article` set tags = JSON_SET(tags, ‘$[0] ', ‘Mysql 5.7.13' ) ;<br>

上面体验了 JSON_MERGE 和 JSON_SET ,用于修改JSON的函数还有很多,例如:

JSON_INSERT(doc, path, val[, path, val]…)

插入数据

JSON_REPLACE(doc, path, val[, path, val]…)

替换数据

JSON_ARRAY_APPEND(doc, path, val[, path, val]…)

向数组尾部追加数据

JSON_REMOVE(doc, path[, path]…)<br>

私は上記の JSON_MERGE と JSON_SET を経験しましたが、次のような JSON を変更する関数がたくさんあります:

JSON_INSERT(doc, path, val[, path, val]…)

🎜🎜データを挿入🎜🎜JSON_REPLACE(doc, path, val[, path, val]…)🎜🎜🎜データを置換🎜🎜JSON_ARRAY_APPEND (doc, path, val[, path, val]…)🎜🎜🎜配列の末尾にデータを追加します🎜🎜JSON_REMOVE(doc, path [, path]…)🎜 🎜🎜指定した場所からデータを削除します🎜🎜 最初の操作経験を通して、Mysql の JSON 操作は比較的スムーズであると感じました。確かに、将来 mysql でドキュメント構造を使用するのは非常に便利です。

以上がMysql5.7でのJSON関数の操作例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

MySQL5.7とMySQL8.0の違いは何ですか? MySQL5.7とMySQL8.0の違いは何ですか? Feb 19, 2024 am 11:21 AM

MySQL5.7 と MySQL8.0 は 2 つの異なる MySQL データベース バージョンであり、それらの間には主な違いがいくつかあります: パフォーマンスの向上: MySQL8.0 では、MySQL5.7 と比較してパフォーマンスがいくつか向上しています。これには、より優れたクエリ オプティマイザー、より効率的なクエリ実行プランの生成、より優れたインデックス作成アルゴリズムと並列クエリなどが含まれます。これらの改善により、クエリのパフォーマンスとシステム全体のパフォーマンスが向上します。 JSON サポート: MySQL 8.0 では、JSON データのストレージ、クエリ、インデックス作成など、JSON データ型のネイティブ サポートが導入されています。これにより、MySQL での JSON データの処理と操作がより便利かつ効率的になります。トランザクション機能: MySQL8.0 では、アトミックなどのいくつかの新しいトランザクション機能が導入されています。

PHP 配列を JSON に変換するためのパフォーマンス最適化のヒント PHP 配列を JSON に変換するためのパフォーマンス最適化のヒント May 04, 2024 pm 06:15 PM

PHP 配列を JSON に変換するためのパフォーマンスの最適化方法には、JSON 拡張機能と json_encode() 関数の使用、文字エスケープを回避するためのバッファーの使用、およびサードパーティのエンコード結果の使用の検討が含まれます。 JSONエンコーディングライブラリ。

Jackson ライブラリのアノテーションは、JSON のシリアル化と逆シリアル化をどのように制御しますか? Jackson ライブラリのアノテーションは、JSON のシリアル化と逆シリアル化をどのように制御しますか? May 06, 2024 pm 10:09 PM

Jackson ライブラリのアノテーションは、JSON のシリアル化と逆シリアル化を制御します。 シリアル化: @JsonIgnore: プロパティを無視します @JsonProperty: 名前を指定します @JsonGetter: get メソッドを使用します @JsonSetter: set メソッドを使用します Deserialization: @JsonIgnoreProperties: プロパティ @ JsonProperty を無視します:名前を指定 @JsonCreator: コンストラクターを使用 @JsonDeserialize: カスタム ロジック

Pandas の使用法チュートリアル: JSON ファイルを読み取るためのクイック スタート Pandas の使用法チュートリアル: JSON ファイルを読み取るためのクイック スタート Jan 13, 2024 am 10:15 AM

クイック スタート: JSON ファイルを読み取る Pandas の方法、特定のコード サンプルが必要です はじめに: データ分析とデータ サイエンスの分野では、Pandas は重要な Python ライブラリの 1 つです。豊富な機能と柔軟なデータ構造を備え、さまざまなデータを簡単に処理・分析できます。実際のアプリケーションでは、JSON ファイルを読み取る必要がある状況によく遭遇します。この記事では、Pandas を使用して JSON ファイルを読み取る方法を紹介し、具体的なコード例を添付します。 1.パンダのインストール

簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 Jan 05, 2024 pm 06:08 PM

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

PHPを深く理解する:JSON Unicodeを中国語に変換する実装方法 PHPを深く理解する:JSON Unicodeを中国語に変換する実装方法 Mar 05, 2024 pm 02:48 PM

PHP の深い理解: JSONUnicode を中国語に変換する実装方法 開発中、JSON データを処理する必要がある状況によく遭遇しますが、特に変換する必要がある場合、JSON 内の Unicode エンコードによっていくつかのシナリオで問題が発生します。 Unicode エンコードを漢字に変換する場合。 PHP では、この変換処理を実現するためのメソッドがいくつかありますが、以下では一般的なメソッドを紹介し、具体的なコード例を示します。まず、JSON の Un について理解しましょう

JavaScript で HTTP ステータス コードを簡単に取得する方法 JavaScript で HTTP ステータス コードを簡単に取得する方法 Jan 05, 2024 pm 01:37 PM

JavaScript で HTTP ステータス コードを取得する方法の紹介: フロントエンド開発では、バックエンド インターフェイスとの対話を処理する必要があることが多く、HTTP ステータス コードはその非常に重要な部分です。 HTTP ステータス コードを理解して取得すると、インターフェイスから返されたデータをより適切に処理できるようになります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法と、具体的なコード例を紹介します。 1. HTTP ステータス コードとは何ですか? HTTP ステータス コードとは、ブラウザがサーバーへのリクエストを開始したときに、サービスが

PHP 配列を JSON に変換するための簡単なヒント PHP 配列を JSON に変換するための簡単なヒント May 03, 2024 pm 06:33 PM

PHP 配列は、 json_encode() 関数を使用して JSON 文字列に変換できます (例: $json=json_encode($array);)。逆に、 json_decode() 関数を使用して JSON から配列に変換できます ($array= json_decode($json);) 。その他のヒントには、深い変換の回避、カスタム オプションの指定、サードパーティ ライブラリの使用などがあります。

See all articles