这个sql返回正确的结果:
convert
但是当我添加多个值时
select * from `user` where `profile`->"$.year" IN ("2001")
返回空
似乎“In”语句在Mysql 5.7中的JSON列上没有按预期工作?
答案 0 :(得分:0)
参见文档:
...
...
以下比较运算符和函数尚未完成 支持JSON值:
上面列出的比较运算符和函数的解决方法是 将JSON值转换为本机MySQL数值或字符串数据类型 它们具有一致的非JSON标量类型。
...
尝试:
SELECT *
FROM `user`
WHERE CAST(`profile` -> "$.year" AS UNSIGNED) IN ("2001", "1");
请参阅dbfiddle。