我们在生产环境中的这个表中有一些记录,其中一个名为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 "%\\\'%"
答案 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 "%\\\'%"