我有一个带有列的user_table
对于自动完成的用户界面,用户可以自由搜索任何内容。
我想允许用户通过全名以及带有类似查询的contact_number进行搜索。
我写的查询就像
select CONCAT(u.first_name ,' ', u.last_name) as full_name, contact_number from user_table u where contact_number like '%value%' HAVING full_name like '%value%';
它不起作用,因为contact_number和full_name的值都相同。如果我删除contact_number或Haveing close,那么无论哪种情况它都可以工作。我无法将OR子句放在位置和位置之间。
答案 0 :(得分:1)
如帖子中所述
我想允许用户通过全名以及带有类似查询的contact_number进行搜索。
如果要使用OR
和WHERE
进行搜索,则可以在contact_number
子句中使用full_name
运算符
select CONCAT(u.first_name ,' ', u.last_name) as full_name
from user_table u
where contact_number like '%value%'
OR CONCAT(u.first_name ,' ', u.last_name) like '%value%';
或
select CONCAT(u.first_name ,' ', u.last_name) as full_name
from user_table u
where contact_number like '%value%'
OR u.first_name like '%value%'
OR u.last_name like '%value%';
答案 1 :(得分:0)
select CONCAT(p.first_name ,' ', p.last_name) as full_name, contact_number from user_table p HAVING full_name like '%Nimesh S%' or contact_number like '%Nimesh S%';
或
select CONCAT(p.first_name ,' ', p.last_name) as full_name, contact_number from user_table p HAVING full_name like '%888%' or contact_number like '%888%';
或[通用查询]
select CONCAT(p.first_name ,' ', p.last_name) as full_name, contact_number from user_table p HAVING full_name like '%value%' or contact_number like '%value%';