0

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

例如 Test\\'s

我们尝试只选择这样的记录,但是像下面这样的查询除了返回那些有双反斜杠的记录之外,还返回那些有单反斜杠的记录(正确的记录) -

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

上面的查询返回这两行 -

Test\\'s

Test\'s

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

字段compiledlimitation 是一个文本字段。

更新

问题还没有解决。这两个查询都返回记录 -

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

3 回答 3

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

或类似的东西

于 2013-08-23T10:39:58.247 回答
0

要转义两个斜线,您只需要在 LIKE 中使用四个:

LIKE "%\\\\%"

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

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

于 2013-08-23T09:37:46.217 回答
0

\是一个转义字符,所以要考虑 2 \你需要用一个额外的转义它\

select * from tablename where compiledlimitation like "%\\\'%"
于 2013-08-23T09:38:35.517 回答