搜索MySQL中具有特殊字符的String值

时间:2014-09-03 06:25:07

标签: mysql

我在MySQL数据库中有一个表emp,其中列为name。在该名称列中,值为' abc \ xyz'。我想搜索这个值。我尝试过使用以下查询:

select * from emp where name like 'abc\xyz';

我也试过

select * from emp where name like 'abc\xyz' escape '\\';

但我没有找到任何输出。能帮我找到这样的字符串吗?这些字符串在任何位置都可以具有特殊字符。

提前致谢。

2 个答案:

答案 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删除一些特殊字符:)