mysql的json使用

2018年7月13日 0 作者 筱枫

mysql有了json功能过后,可以说是如虎添翼,但其功能并不算很强大(相对于noSQL数据库来说),其中也有不少的坑,现在记录一下

因为未知原因,公司所使用的mysql无法直接使用ARRAY_SEARCH来查询json数组当中的值,于是,一个折衷方案是将我们要查询的值设置为key,其值为1,这样就可以简单的通过  字段名->’$.key名’=1 来查询,如图:

但是这样有个很大的问题,就是…中文支持

查询的时候,sql语句直接解析报错,因为使用的是php,所以我尝试用base64编码,但是…并没有什么用,sql语句解析依旧报错

如果想要语句不报错,我尝试了使用这样的语句

但是这样查询不到数据,万般无奈之下,我只能采用这种方式

bin2hex和hex2bin两个函数

通过这两个函数,可以将二进制转换为十六进制的数字,这样存入数据库既能保证唯一性,又可以查询

当然这种十六进制直接返回给前端是不行的,所以在给前端数据之前,还需要再使用hex2bin进行解码

其实这篇文章并不是json的指南,只是记录一种解决方案,一种思路而已。