2011-10-10 45 views
3

考虑我有我的表如何与名字和姓氏搜索 - Mysql的

field_profile_first_name_value  field_profile_last_name_value 

Victor        Brecher 
Abhi        Jass    

select field_profile_first_name_value, field_profile_last_name_value 
from content_type_profile where field_profile_first_name_value LIKE '%Victor Bre%' OR 
field_profile_last_name_value LIKE '%Victor Bre%' 

我有一个自动完成的文本框拖领域。

当我输入的关键字是胜利者,将取回结果。但是如果我在同一时间给出名字和姓氏,它将不会产生结果。

这就是说,如果我给关键字作为Victor Brecher它不会产生结果。

我怎样才能让我是否输入姓氏和名字来获得结果呢?

我怎么能做到吗?

回答

10

尝试:

select * from contracts 
where lower(concat_ws(' ', field_profile_first_name_value, field_profile_last_name_value)) 
like lower('%Victor Bre%') 
6

好吧,就算你不需要使用较低的了。只是简单地使用它。

select * from contracts where concat_ws(' ', field_profile_first_name_value,field_profile_last_name_value) 
like '%Victor Bre%' 
0

我会利用soundex。

select * from contracts where SOUNDEX(concat_ws(' ', field_profile_first_name_value,field_profile_last_name_value)) = SOUNDEX('Victor Bre'); 
+0

如果没有使用类似'%name%'的结果返回,那么SOUNDEX搜索将返回类似的名称拼写错误的结果。 –

+0

这是我的坏 - 我正在审查“作出新的贡献”,并认为这是一个问题,不是一个答案 - 这绝对是一个解决问题的贡献,我会反转我的downvote到给予好评,如果答案是编辑,所以我可以扭转。道歉。 –