mysql json大小写敏感,对于以JSON编码的字段使用MySQL LIKE运算符

我一直试图用这个查询得到一个表行:

SELECT * FROM `table` WHERE `field` LIKE "%\u0435\u0442\u043e\u0442%"

场本身:

Field

--------------------------------------------------------------------

\u0435\u0442\u043e\u0442 \u0442\u0435\u043a\u0441\u0442 \u043d\u0430

虽然我似乎无法让它正常工作.

我已经尝试过反斜杠字符:

LIKE "%\\u0435\\u0442\\u043e\\u0442%"

LIKE "%\\\\u0435\\\\u0442\\\\u043e\\\\u0442%"

但它们似乎也没有用.

如果有人可以暗示我做错了什么,我会很感激.

提前致谢!

编辑

问题解决了.

解决方案:即使在更正查询的语法后,它也没有返回任何结果.在创建字段BINARY之后,查询开始工作.

解决方法:

Note

Because MySQL uses C escape syntax in strings (for example, “\n” to represent a newline character), you must double any “\” that you use in 07001 strings. For example, to search for “\n”, specify it as “\\n”. To search for “\”, specify it as “\\\\”; this is because the backslashes are stripped once by the parser and again when the pattern match is made, leaving a single backslash to be matched against.

因此:

SELECT * FROM `table` WHERE `field` LIKE '%\\\\u0435\\\\u0442\\\\u043e\\\\u0442%'

标签:json,mysql

来源: https://codeday.me/bug/20190625/1287124.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值