服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|

服务器之家 - 数据库 - Mysql - mysql5.6及以下版本如何查询数据库里的json

mysql5.6及以下版本如何查询数据库里的json

2020-07-20 17:03黎明的海风 Mysql

MySQL里面保存数据有时候会把一些杂乱且不常用的时候丢进一个json字段里面,那么如何查询数据库里的json呢以及mysql存储json注意那些格式呢?接下来通过本文给大家详细介绍,需要的朋友参考下

MySQL里面保存数据有时候会把一些杂乱且不常用的时候丢进一个json字段里面

下面说说mysql存储json注意那些格式吧:

1:注意保存是中文不要变成转码的,转码之后导致查询非常麻烦,压缩时候后面多带一个参数,方便不止一点点哟!

?
1
json_encode(array(),JSON_UNESCAPED_UNICODE);

好处:这样查询的时候中文字符更好的匹配查询

2:字段统一    存的时候最好开始定好字段名称  ,开发一个大点的项目不可能一个人开发统一字段可以减少很多不需要的麻烦和字段不同意导致bug(反正我是在这上面吃过一个亏,但是带大家做项目当时没想到加上赶导致后面测试修改耗费比开发更多时间)

好处:减少查询出来数据代码处理量,降低项目页面显示bug

3:能存一维数组绝对不要存二维数组

原因:二维数组不可控,这个还是的更具需求来定

个人习惯反正这是我的习惯,哈哈哈,不爽可以来打我呀!

下面说正事:查询当然用的是like

例如有一张table表里面有一个content字段,现在是找出actid为123456789的

?
1
2
5.7:select * from table where content->'$.actid' like '%123456789%';
5.6:select * from table where content like '%"actid":"123456789"%'

这样应该一看就懂,教学吗教肯定全套,做个保健不也是,所以代码里面有的人说怎么用

?
1
2
$id="123456789";
$sql="select * from table where content like '%\"actid":\""$id"\"%\'";

以上所述是小编给大家介绍的mysql5.6及以下版本如何查询数据库里的json,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

原文链接:http://blog.csdn.net/u010757785/article/details/62422679

延伸 · 阅读

精彩推荐