我有一个带有列的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进行搜索。


如果要使用ORWHERE进行搜索,则可以在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/

10-08 20:38