所以我有一个有趣的问题,我从来没有遇到过,而且似乎找不到很多关于纠正这个问题的信息。我有一个庞大的数据库,其中包含大量数据(价值 10 年),并试图通过它进行搜索。
现在搜索的东西工作正常,但如果你愿意的话,最近有人提请我注意一个“错误”。我试图对其进行故障排除以获得预期的结果,但无济于事。
这是我的问题:
当有人在搜索中使用撇号时,并不是搜索失败,而是没有返回任何结果。因此,例如在搜索Pete's
查询时执行但不返回任何内容。是的,我确保查询具有 mysql_real_escape_string() 以便Pete's
变为Pete\'s
.
即使我尝试使用 phpmysql 的搜索功能查询它,我也会得到奇怪的结果。该查询旨在如下所示:
SELECT * FROM `smd_article` WHERE `copy` LIKE '%Pete\'s%'
但是当我在 phpmyadmin 中使用搜索功能时,它给了我:
SELECT * FROM `smd_article` WHERE `copy` LIKE '%Pete''s%'
当我实际在 sql 选项卡中输入查询时,它仍然没有返回任何结果。但是当我只使用 Pete 时会返回一些 17K 记录,而当我只使用 Petes 时会返回一些 3k 记录。
所以我很好奇我做错了什么,或者错过了什么,以便它可以允许在使用 LIKE 语句的查询中使用撇号。想法?