'{"city": "Gradystad"}'
此作品
`fields`->'$."city"' LIKE '%stad%' // contains
这不
`fields`->'$."city"' LIKE 'Grady%' // begins with
`fields`->'$."city"' LIKE '%stad' // ends with
为什么呢? &安培;如何解决?
答案 0 :(得分:0)
检查类似函数字符串上的大写字母。这可能是一个简单的解决方案。
答案 1 :(得分:0)
Laravel在MySQL语法中使用->
JSON选择器语法,如MySQL manual
mysql> SELECT c, c->"$.id", g
> FROM jemp
> WHERE c->"$.id" > 1
> ORDER BY c->"$.name";
+-------------------------------+-----------+------+
| c | c->"$.id" | g |
+-------------------------------+-----------+------+
| {"id": "3", "name": "Barney"} | "3" | 3 |
| {"id": "4", "name": "Betty"} | "4" | 4 |
| {"id": "2", "name": "Wilma"} | "2" | 2 |
+-------------------------------+-----------+------+
3 rows in set (0.00 sec)
但是,它不会添加JSON_UNQUOTE
或任何方法来从结果集中删除双引号。由于where
子句是通过MySQL评估的(PDO必须在结果集转换中删除它们),我们需要在搜索值中包含额外的"
。