日常のビジネス開発では、通常、クエリを実行するときに mysql データベースのフィールドに json 形式の文字列を保存する必要があります。 json データは大きく、すべてを取得して毎回解析してクエリするのは非効率的で面倒です。 key(json配列型であれば添字で対応する位置の値を取得できる)なのでとても便利です。
2. MySQL json_extract 関数の紹介
2.2 使用方法
JSON 内の特定のフィールドの値をクエリする場合、使用されるメソッドは JSON_EXTRACT() です。
構文:
**JSON_EXTRACT(json_doc, path[, path] …)**使用上のヒント:
3. データ検証
$.KEY[index]
を使用して
配列フィールドを取得します。インデックスは 0 から始まることに注意してください。
select json_extract('{"name":"zhangsan","tel_no":"136-6666-6666","hobbies":["basketball","run","sing"]}',"$.name") as name, json_extract('{"name":"zhangsan","tel_no":"136-6666-6666","hobbies":["basketball","run","sing"]}',"$.tel_no") as tel_no, json_extract('{"name":"zhangsan","tel_no":"136-6666-6666","hobbies":["basketball","run","sing"]}',"$.hobbies[0]") as hobby_1, json_extract('{"name":"zhangsan","tel_no":"136-6666-6666","hobbies":["basketball","run","sing"]}',"$.hobbies[1]") as hobby_2, json_extract('{"name":"zhangsan","tel_no":"136-6666-6666","hobbies":["basketball","run","sing"]}',"$.hobbies[2]") as hobby_3, json_extract('{"name":"zhangsan","tel_no":"136-6666-6666","hobbies":["basketball","run","sing"]}',"$.hobbies[3]") as hobby_4;
hobby_2 | 趣味_3 | 趣味_4 | ##「張三」 | 136-6666-6666 | |
---|---|---|---|---|---|
"sing" | #NULL | 3.2 json 配列の値を抽出 | site_user テーブル |
##1 | zhangsan | #[“共通”] |
---|---|---|
lisi | [” VIP”] | |
wangwu | [“VVIP”,“プラチナ”] | |
zhaoliu | ||
select id, name, tags, json_extract(if(LENGTH(tags)>0,tags, '[]'),"$[0]") # 如果tags无数据,赋值为空数组 from site_user; | 結果: ##id |
タグ
zhangsan | "共通" | |
---|---|---|
"VIP" | 3 | |
「VVIP」 | 4 | |
NULL |
以上がMySQLでjson_extract関数を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。