LIKE查询中的转义字段

时间:2015-05-07 12:18:28

标签: mysql sql

以下查询:

SELECT `att`.`val` FROM `att` WHERE NOT (`att`.`val` LIKE `att`.`val`);

什么都不回,对吧?

但它会返回所有带有反斜杠的val

如何让它什么都不返回?

valvarchar(1024)字段(不是主要字段,而不是空字段)。

这当然是一个无用的查询,但它是另一个查询的简化版本,因为同样的原因而无法正常工作。

我使用的是mysql 5.6.20。

谢谢!

修改

我想要转义每个需要转义的字符,以便查询按预期工作。不只是反斜杠。

1 个答案:

答案 0 :(得分:2)

尝试将条件更改为:

WHERE NOT (`att`.`val` LIKE replace(`att`.`val`,'\\','\\\\'))

- 这会在val中用双反斜杠替换单个反斜杠,这样它们就不会充当转义字符,而是被like表达式视为文字反斜杠。 (第一个反斜杠逃脱了第二个。)