我有一個類似的查詢作爲被問及這個問題如何根據相關性對mysql搜索結果進行排序?
MySQL - How to ORDER BY RELEVANCE? INNODB Table
不同的是,在這裏我想從5個字段進行搜索作爲
ADD1,ADD2,ADD3,post_town,post_code
並且只有的郵政編碼字段將不爲空,其他字段記錄可能在某些地方爲空。如果我搜索關鍵字金士頓,則返回
Acre Road, Kingston upon Thames, KT2 6EA
Kingston Road, Epsom, KT19 0DG
Kingston Road, Epsom, KT20 0DH
這些結果都是各個領域ADD1,ADD2,ADD3,post_town的組合,post_code
我需要這個結果在下列順序
Kingston Road, Epsom, KT19 0DG
Kingston Road, Epsom, KT20 0DH
Acre Road, Kingston upon Thames, KT2 6EA
我目前的SQL查詢是這樣
SELECT add1, add2, add3, post_town, post_code FROM address_mst
WHERE add1 LIKE '%".$keyword."%'
OR add2 LIKE '%".$keyword."%'
OR add3 LIKE '%".$keyword."%'
OR post_town LIKE '%".$keyword."%'
OR post_code LIKE '%".$keyword."%'
所以我需要帶搜索關鍵字的記錄一開始會先到達。我怎樣才能做到這一點 ?
非常感謝你,這工作非常好。只是在最後一行做了一個修改,看起來更聰明 order by a.rank asc,add1,add2,add3,post_town,post_code; – aslamdoctor