2012-01-08 49 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

相关问题