我一直在尝试使用此查询获取表格行:
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之后,查询开始工作。
答案 0 :(得分:4)
正如String Comparison Functions所述:
注意
因为MySQL在字符串中使用C转义语法(例如,“
\n
”来表示换行符),所以必须将LIKE
字符串中使用的任何“\
”加倍。例如,要搜索“\n
”,请将其指定为“\\n
”。要搜索“\
”,请将其指定为“\\\\
”;这是因为解析器会将反斜杠剥离一次,并且在进行模式匹配时再次剥离反斜杠,只留下一个反斜杠。
因此:
SELECT * FROM `table` WHERE `field` LIKE '%\\\\u0435\\\\u0442\\\\u043e\\\\u0442%'
在sqlfiddle上查看。
答案 1 :(得分:0)
它对那些使用PHP的人有用,它对我有用
$where[] = 'organizer_info LIKE(CONCAT("%", :organizer, "%"))';
$bind['organizer'] = str_replace('"', '', quotemeta(json_encode($orgNameString)));