我在MySQL数据库中有一个表emp,其中列为name。在该名称列中,值为' abc \ xyz'。我想搜索这个值。我尝试过使用以下查询:
select * from emp where name like 'abc\xyz';
我也试过
select * from emp where name like 'abc\xyz' escape '\\';
但我没有找到任何输出。能帮我找到这样的字符串吗?这些字符串在任何位置都可以具有特殊字符。
提前致谢。
答案 0 :(得分:1)
您可以尝试这样:
select * from emp
where empname like '%abc\\\\xyz%'
<强> SQL Fiddle Demo 强>
来自docs:
因为MySQL在字符串中使用C转义语法(例如,“\ n”表示换行符),所以必须将在LIKE字符串中使用的任何“\”加倍。例如,要搜索“\ n”,请将其指定为“\\ n”。 要搜索“\”,请将其指定为“\\\\”;这是因为解析器会将反斜杠剥离一次,并且在进行模式匹配时再次剥离反斜杠,只留下一个反斜杠。
答案 1 :(得分:0)
SELECT REPLACE(text,'\\','') FROM tbl
您可以使用REPLACE删除一些特殊字符:)