Mysql 5.7 json列WHERE IN无法按预期工作

时间:2018-04-26 05:00:16

标签: mysql json

这个sql返回正确的结果:

convert

但是当我添加多个值时

select * from `user` where `profile`->"$.year" IN ("2001")

返回空

似乎“In”语句在Mysql 5.7中的JSON列上没有按预期工作?

1 个答案:

答案 0 :(得分:0)

参见文档:

  

11.6 The JSON Data Type

     

...

           

...

     

以下比较运算符和函数尚未完成   支持JSON值:

           

上面列出的比较运算符和函数的解决方法是   将JSON值转换为本机MySQL数值或字符串数​​据类型   它们具有一致的非JSON标量类型。

     

...

尝试:

SELECT *
FROM `user`
WHERE CAST(`profile` -> "$.year"  AS UNSIGNED) IN ("2001", "1");

请参阅dbfiddle