MYSQL JSON字段,其中以开头或结尾

MYSQL JSON字段,其中以开头或结尾,mysql,mysql-5.7,Mysql,Mysql 5.7,这很有效 '{"city": "Gradystad"}' 这不是 `fields`->'$."city"' LIKE '%stad%' // contains 为什么?如何处理?检查类似函数字符串上的大写字母。这可能是一个简单的解决方案。Laravel在MySQL语法中使用了->JSON选择器语法,如 但是,它不会添加JSON\u UNQUOTE或从结果集中删除双引号的任何方法。由于where子句是通过MySQL计算的(PDO必须在结果集转换中去掉它们),因此我们需要在搜索值中包含额外

这很有效

'{"city": "Gradystad"}'
这不是

`fields`->'$."city"' LIKE '%stad%' // contains

为什么?如何处理?

检查类似函数字符串上的大写字母。这可能是一个简单的解决方案。

Laravel在MySQL语法中使用了
->
JSON选择器语法,如

但是,它不会添加
JSON\u UNQUOTE
或从结果集中删除双引号的任何方法。由于
where
子句是通过MySQL计算的(PDO必须在结果集转换中去掉它们),因此我们需要在搜索值中包含额外的

`fields`->'$."city"' LIKE 'Grady%' // begins with
`fields`->'$."city"' LIKE '%stad' // ends with
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)