当我查询同一个表时,考虑 Mysql 表中的一个字段( sample_field )作为“你的数据”
SELECT * FROM sample_table WHERE sample_field = "您的数据"
也喜欢
SELECT * FROM sample_table WHERE sample_field = "你的数据"
上述两个查询都返回 0 行,即使 sample_field
的值为“your\'s data”
经过长时间的搜索我才知道,我的搜索应该是
SELECT * FROM sample_table WHERE sample_field = "你\\\的数据"
效果很好。但是
SELECT * FROM sample_table WHERE sample_field LIKE “your\\\'s data”
不工作。因此,如果我想用引号搜索任何产品或类别(如“您的数据”),在站点搜索中我必须使用带有通配符模式('%')的 LIKE
关键字。
现在我找到了答案,如果我这样尝试
SELECT * FROM sample_table WHERE sample_field LIKE “your\\\\'s data”
在 http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_like 中给出,它工作正常。
但是请告诉我为什么它需要这么多的 4 个反斜杠来实现这一点?
提前致谢
最佳答案
如果您希望转义反斜杠成为文字反斜杠,则必须转义:
WHERE sample_field = "your\\'s data"
但实际上,首先在您的数据库中使用反斜杠是错误的,请改正它。
关于php - Mysql,无法使用 "LIKE"关键字搜索转义字符串字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9141260/