我有一個郵政編碼區如SA1,SA3,SA11,LL41,NP20的表,我需要根據客戶輸入郵政編碼進行搜索,然後匹配相關記錄,我試過了:試圖讓MySQL子字符串搜索工作
SELECT MATCH(postal_district) AGAINST ('SA1 1EG') FROM `postcodes` WHERE MATCH(postal_district) AGAINST ('SA1 1EG') > 0
但它沒有返回什麼,我做錯了什麼?
我有一個郵政編碼區如SA1,SA3,SA11,LL41,NP20的表,我需要根據客戶輸入郵政編碼進行搜索,然後匹配相關記錄,我試過了:試圖讓MySQL子字符串搜索工作
SELECT MATCH(postal_district) AGAINST ('SA1 1EG') FROM `postcodes` WHERE MATCH(postal_district) AGAINST ('SA1 1EG') > 0
但它沒有返回什麼,我做錯了什麼?
你也許想要做的事更是這樣?
SELECT postal_district FROM postcodes WHERE MATCH(postal_district) AGAINST('SA1 1EG' IN BOOLEAN MODE);
我不知道一個全文檢索是你真正想要的,無論哪種方式,你可能會得到更好的服務每行有一個代碼,只是做一個不區分大小寫的匹配(只是比較上每種版本)。如果您堅持使用上述內容,請確保您正在搜索的列上有全文索引(postal_district)。
不太清楚你想要做什麼,但你的意思是這...
SELECT COUNT(*) FROM `postcodes` WHERE MATCH(postal_district) AGAINST ('SA1 1EG');
嘗試
SELECT * FROM `postcodes` WHERE postal_district LIKE '%SA1%'
我不完全知道你正在嘗試做的這裏。如果你可以嘗試澄清一點。
在MySQL的全文檢索典型的語法是:
SELECT * FROM postcodes
WHERE MATCH (postal_district) AGAINST ('SA1 1EG');
全文搜索是唯一的,如果你添加一個FULLTEXT索引列。
http://dev.mysql.com/doc/refman/5.0/en/fulltext-natural-language.html