从MySQL 5.7.8开始,MySQL支持本机JSON数据类型。在本教程中,我们将学习如何在MySQL中搜索JSON数据。
出于演示目的,假设我们创建了一个包含以下数据的数据库表:
+-------------------------------+
| data |
+-------------------------------+
| {"id": "4", "name": "Betty","mobile_no.":"921213"} |
+-------------------------------+
列“data”是JSON类型。当前,它包含具有三个字段的用户JSON数据:
要从JSON中选择特定字段,我们可以使用JSON_EXTRACT
函数。例如,选择名称字段:
SELECT JSON_EXTRACT(data,'$.name') AS name FROM users;
这将输出
"Betty"
您可能已经注意到在前面的示例中双引号。要从选择结果中删除双引号,我们可以使用JSON_UNQUOTE
函数:
SELECT JSON_UNQUOTE(JSON_EXTRACT(data,'$.name')) AS name FROM users;
这将输出
Betty
在我们的示例“data”字段的数据中,它包含一个名为“ mobile_no”的JSON字段,请注意结尾的点“.”的表示法。不能直接在选择字段中使用点符号,因为它将被视为分母。
要在选择路径中使用点符号,我们可以用双引号将其引起来:
SELECT JSON_UNQUOTE(JSON_EXTRACT(data,'$."mobile_no."')) AS mobile FROM users;
这将输出:
921213
通常将选定的JSON字段用作条件。为此,我们可以使用HAVING
子句:
SELECT JSON_UNQUOTE(JSON_EXTRACT(data,'$.id')) AS id FROM users HAVING id = 1;
我们希望以上的使用示例对您有所帮助!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有