php - Mysql,无法使用 "LIKE"关键字搜索转义字符串字段

标签 php mysql

当我查询同一个表时,考虑 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/

相关文章:

php - 将 Sphinx 搜索与 ORM 结合使用

javascript - PHP对象数组到javascript变量

javascript - 网站的管理部分?

mysql - sql中的最大函数

mysql - 讨论板数据库的存储引擎

php - PDO Mysql错误1064

mysql - 无论如何,始终为 mysql 列返回 null/空值并考虑到性能?

php - SELECT 查询语法问题

php - 加载 SQL DLL PHP 5.6.32 时出现问题

mysql - 如何优化这个mysql程序代码