开发者

How to search with firstname and last name in - Mysql

开发者 https://www.devze.com 2023-04-12 03:02 出处:网络
Consider I am having tow fields in my table field_profile_first_name_valuefield_profile_last_name_value

Consider I am having tow fields in my table

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%开发者_运维技巧'

I am having a auto complete text box.

When i enter the keyword as victor it will fetch the result. But if i give the first name and last name in the same time it will not produce the result.

That is if i give the keyword as Victor Brecher it will not produce the result.

How can i make to get the result if i enter first name and last name ?

How can i make it ?


Try :

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


Well, even you don't need to use lower too. just use it simply.

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


I would make use of soundex.

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


I suggest to use this code, so the search works also if the search input is the lastname before the name

SELECT 
 *
FROM
  contracts
WHERE
   CONCAT(firstname, ' ', lastname)) LIKE 'Victor Bre%'
OR CONCAT(lastname, ' ', firstname)) LIKE 'Victor Bre%';

Moreover, I tested this sql code with and without LOWER(), in mysql 5.7+ the search already do that.

0

精彩评论

暂无评论...
验证码 换一张
取 消