簡體   English   中英

Mysql 5.7 json列在哪里無法按預期工作

[英]Mysql 5.7 json column WHERE IN not working as expected

此sql返回正確的結果:

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

但是當我添加多個值時

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

返回空

在Mysql 5.7的JSON列上似乎“ In”語句無法按預期工作?

請參閱文檔:

11.6 JSON數據類型

...

...

JSON值尚不支持以下比較運算符和函數:

上面列出的比較運算符和函數的解決方法是將JSON值轉換為本地MySQL數字或字符串數​​據類型,以便它們具有一致的非JSON標量類型。

...

嘗試:

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

請參見dbfiddle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM