我有一個查詢使用LIKE搜索郵政編碼。現在,如果有人將完整的郵政編碼放入郵政編碼SW14 4NP。但是如果有人投入SW1,它將返回SW1 +結果。我怎樣才能讓這個如果有人把SW1,這將只顯示SW1郵編,不SW11,SW14等PHP MYSQL使用LIKE搜索郵政編碼
我的查詢是:
SELECT postcode FROM data WHERE postcode LIKE '$search%'
的郵政編碼數據庫存儲爲SW14 4NP等與一個空間。
我有一個查詢使用LIKE搜索郵政編碼。現在,如果有人將完整的郵政編碼放入郵政編碼SW14 4NP。但是如果有人投入SW1,它將返回SW1 +結果。我怎樣才能讓這個如果有人把SW1,這將只顯示SW1郵編,不SW11,SW14等PHP MYSQL使用LIKE搜索郵政編碼
我的查詢是:
SELECT postcode FROM data WHERE postcode LIKE '$search%'
的郵政編碼數據庫存儲爲SW14 4NP等與一個空間。
使用regular expression基於模式匹配:
WHERE postcode RLIKE '^$search(?[0-9][A-Z]{2})?'
SELECT postcode
FROM data
WHERE postcode LIKE 'SW1 %'
SELECT postcode FROM data WHERE postcode LIKE '$search %'
但說用戶只插入SW,它會返回任何結果,而與當前的查詢將返回任何東西從SW開始。取決於你想要做什麼。
請提供樣品表數據 – Omesh 2013-04-25 13:23:06
感謝您的答覆,eggyal的回答是更適合,因爲它有更多的靈活性。我忘了提及我有一些函數來驗證它是一個完整的郵編還是一個外部郵編。我只是無法讓查詢只顯示基於外部郵編的結果。謝謝大家的答案,因爲他們都做得很好。 – Sygon 2013-04-25 13:30:34