2012-01-08 58 views
0

我有一個地址字符串的單個用戶條目文本框,即它沒有被分爲塊號,街道地址,城市,州和郵編。但是我的MySql表爲每個地址組件都有單獨的列。我的任務是從用戶處獲取地址字符串,並在地址表中查找並返回與之匹配的行的ID。在MySQL中的表中查找多列中的concatanated字符串

如何對地址表中的這些單列進行反向查找?此外,解析字符串並不容易,因爲用戶可以輸入多個空格&街道名稱可能非常棘手,並且可能包含多個單詞。

因此,如果用戶輸入123 South Main St Los Angeles CA 92032,那麼我應該用列(地址ID,街區號,街道,城市,州,郵編)對照地址表進行搜索並返回地址ID 。

感謝, 夏奇拉

回答

1
select * 
from Address 
where concat(street, city) like '%input%'; 

您需要全文搜索的設置,請參閱 http://devzone.zend.com/26/using-mysql-full-text-searching/http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html

+0

謝謝薩欽是有很大幫助,但它工作得更好,如果我加入了拼接空白例如在哪裏concat(blockno,'',streetname,'')。然而,我正在尋找的是一個更全面的文本搜索功能,如果用戶錯過進入城市或州,那麼它也應該工作。在你推薦的查詢中,用戶應該按照正確的順序輸入地址。 – 2012-01-08 08:18:54

+1

好的。我在右側看到很多與全文檢索有關的問題,你檢查過它們嗎? 如果有幫助,請參閱http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html。 – 2012-01-08 08:31:11

相關問題