所以我有一個有趣的問題,我從來沒有遇到過,似乎無法找到有關糾正問題的更多信息。我有大量的數據庫,其中有大量的數據(價值10年),並試圖通過它進行搜索。Mysql使用LIKE和撇號查詢問題
現在搜索工作正常,但最近有人提請我注意一個'錯誤',如果你願意。我試圖通過拍攝來獲得預期的效果,但無濟於事。
這是我的問題:
當有人使用搜索撇號,它不是搜索出故障,但它不返回任何結果。因此,例如,當搜索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和一些3k記錄的時候,我有一些17K記錄被返回,當我做Petes的時候。
所以我很好奇我做錯了什麼,或者錯過了,以便它可以允許使用LIKE語句的查詢中的撇號。思考?
偏離主題,但它是值得知道像這樣的通配符查詢是查詢的最慢的方式一個數據庫。我可能對一張小桌子很好,但如果你的桌子很大,那真的會讓事情變慢。被警告。 – SDC