php - MySQL通配符过滤特殊字符使用LIKE

标签 php mysql

我的 SQL 查询是:

SELECT * FROM listings  WHERE title LIKE '%Debbie\'s Pet Grooming%' 

但是,当我运行此查询时,我没有得到任何结果。你能建议为什么。我的数据库表如下:

enter image description here

最佳答案

您的问题是您以某种方式设法在数据库中的值中获得了实际的反斜杠,因此您需要搜索它。尝试这个:

SELECT * FROM listings  WHERE title LIKE '%Debbie\\\\\'s Pet Grooming%' 

Demo on dbfiddle

来自 manual :

Because MySQL uses C escape syntax in strings (for example, “\n” to represent a newline character), you must double any “\” that you use in LIKE strings. For example, to search for “\n”, specify it as “\\n”. To search for “\”, specify it as “\\\\”; this is because the backslashes are stripped once by the parser and again when the pattern match is made, leaving a single backslash to be matched against.

关于php - MySQL通配符过滤特殊字符使用LIKE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59281622/

相关文章:

php - 我如何让 PHP/REGEX 匹配所有关键字,而不是任何关键字?

php - 检索访客的书签

php - 如何在 PHP 中检查我的输入字段是否包含整数值?

php - PHP 中的复杂 MySql 查询

php - 在 php 和 Mysql 中插入用于存储全局站点首选项的查询

php - 如果未获取任何行,则 Codeigniter row_array 内容

php - VS 代码和 PHP : No Autocomplete for variables from included files?

mysql - 如何设置 Sequelize.js 以流式传输数据而不是 promise /回调?

java - 如何使用 Hibernate 通过索引查询 MySQL 数据库

php - 显示数据库中的 1 张以上图像? (PHP、MySQL)