MYSQL HAVING 和 WHERE 带条件

标签 mysql

我有一个包含列的 user_table

  • 名字
  • 姓氏
  • 联系电话

对于自动完成 UI,用户可以自由搜索任何内容。

我希望允许用户通过类似查询按全名和联系人号码进行搜索。

我写的查询就像,

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 或已关闭,则部分它适用于这两种情况。我无法在 where 和having 之间放置 OR 子句。

最佳答案

正如帖子中提到的

I want to allow user to search by full_name as well as contact_number with like query.

您可以使用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 HAVING 和 WHERE 带条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55898611/

相关文章:

PHP:空白页上显示未定义

php - 未找到结果

mysql - 代码点火器 : A Database Error Occurred SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

php - 如何使用 jQuery、PHP 和 MySQL 动态填充相关的选择菜单?

mysql - 如何在命名查询中编写联接?

java - 搜索数据库未按 JSP 中的预期显示

mysql - 根据相关表中的最大值更新记录

mysql - 在 ALTER TABLE 或 DROP INDEX 命令完成之前终止它

php - 使用 Eloquent 模型类从数据库中选择记录时,如何在 Laravel 4 中解密密码?

mysql - SQL RAND查询选择所有记录并且不使用联接表