选择带有单引号的记录仅由双反斜杠转义

时间:2013-08-23 09:33:12

标签: mysql sql

我们在生产环境中的这个表中有一些记录,其中一个名为compiledlimitation的特定字段包含单引号被多个反斜杠转义的值。

E.g。 Test\\'s

我们尝试仅选择此类记录,但是如下所示的查询会返回那些具有单反斜杠(正确记录)的记录以及具有双反斜杠的记录 -

select * from tablename where compiledlimitation like "%\\'%" 

以上查询返回这两行 -

Test\\'s

Test\'s

如何修改查询以仅获取具有双反斜杠的行。

字段编译限制是一个文本字段。

更新

问题尚未解决。这两个查询都返回两个记录 -

select * from tablename where compiledlimitation like "%\\\\\'%" 
select * from tablename where compiledlimitation like "%\\\'%" 

3 个答案:

答案 0 :(得分:2)

SELECT * FROM my_table WHERE my_column RLIKE '[\\]{2}';

或类似的东西

答案 1 :(得分:0)

要逃避两个斜杠,您只需要在LIKE中使用四个斜杠:

LIKE "%\\\\%"

请参阅http://dev.mysql.com/doc/refman/5.0/en/string-literals.html

表9.1。特殊字符转义序列
...
\\ =>反斜杠(“\”)字符。
...

答案 2 :(得分:0)

\是一个转义字符,因此要考虑2 \,您需要使用额外的\

来转义它
select * from tablename where compiledlimitation like "%\\\'%"