我有一个带有列的user_table
名字
姓
联系电话
对于自动完成的UI,用户可以自由搜索任何内容。
我想允许用户通过全名以及具有类似查询的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子句放在哪里和拥有之间。
最佳答案
如帖子中所述
我想允许用户通过全名以及具有类似查询的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%';
关于mysql - MYSQL HAVING和WHERE有条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55898611/