mysql - SQL:数据库记录中有撇号,但查询字符串中没有

标签 mysql sql

我有一个书名数据库。

我根据页面 URL 中的查询字符串查询数据库。

因此,例如,如果有一本书名为“Mike's Book”,则查询字符串将为“mikes-book”。在将变量传递给 MYSQL 查询之前,我执行了一些基本的清理工作,将“mikes-book”变成了“Mikes Book”。

查询失败,因为查询字符串不包含与数据库记录匹配的撇号。

现在,我正在使用这个查询:

"SELECT title FROM books WHERE title LIKE '$query_title'"

如果数据库记录中没有撇号,则正确返回记录。但是当DB记录中有撇号时,返回0个结果。

关于我可以在这里做什么的任何想法?

最佳答案

问题的出现是因为您有一个有损转换,您正试图反转(在您创建 URL 时显然删除了 )。解决这个问题的一个简单方法是将转换后的值也保存在数据库中,然后查询该值 (mikes-book)。更新名称时,也会同时更新转换后的值。

您还可以在 SQL 中重新实现转换函数并将每一行与转换后的值进行比较,但我强烈建议避免这样做。 :-)

关于mysql - SQL:数据库记录中有撇号,但查询字符串中没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14183940/

相关文章:

mysql - 获得两列的平均百分比

php - 通过 PDO 连接 Mysql 时出错,但使用基本 mysqli 命令时出错 SQLSTATE[HY000] [2002]

MySQL索引: possible_keys is null but key isn't null

mysql - 可以选择但不能删除

mysql - 在临时表中选择不同的

php - 如何在通过php存储在文件夹中时更改图像名称

mysql - 更好的请求查询最后一次插入

mysql - 如何在MySQL中填充从400000开始的新列

mysql - 如何从不包括某些列的表中选择多列?

c# - 将 SQL 中的 Yes/No/Null 转换为 DataTable 中的 True/False