2011-10-10 72 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到給予好評,如果答案是編輯,所以我可以扭轉。道歉。 –