php - SQL 在具有特殊字符的数据库中搜索字符串

标签 php mysql sql

我正在尝试在数据库中使用特殊字符进行搜索,特别是带有撇号的字符串。

例如,我想搜索字符串:“Sandy's dog”,但我只输入了“sandys dog”,省略了撇号。尽管“桑迪的狗”存在于数据库中,但它似乎并未显示在结果中。

这是我的查询:

SELECT *  FROM `Table` WHERE `Title` LIKE '%sandys dog%'

我到处搜索,似乎找不到有效的解决方案。

编辑 限制:字符串是用户生成的 笔记: - 如果用户使用撇号搜索 sandy's dog,它会按预期正常工作。 - 最后,如果表格包含带和不带撇号的字符串,我想获得所有可能的结果。

最佳答案

在 SQL Server 中,你可以使用 REPLACE:

SELECT * 
FROM Table
WHERE REPLACE(Title, '''', '') LIKE '%sandys dog%'

字符串中的双撇号是一个转义字符,因此它会找到字符串中的任何撇号并将其​​替换为空白字符串。

关于php - SQL 在具有特殊字符的数据库中搜索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40310710/

相关文章:

php - 选择日期时间数据并仅获取日期?

php - PHP如何获取下一页的下一个ID

php - MySQL 是否在我的查询中转换 UTF-8 字符(而不是结果),并去除重音符号?

php - 如何使用php和mysql根据用户角色ID访问特定数据库?

c# - 我可以使用 Sql Server Express 复制和使用 mdf 文件吗?

sql - 在 SQL Server 2012 中减去前一行值

php - array_combine() 期望参数 1 为数组,字符串给定

php - Codeigniter 事件记录类(从哪里选择)

php - MySQL in_array 函数 - 第二个参数无效

mysql - 查询将字段数据复制到另一个表