首页 > 解决方案 > 是否可以在 mysql 中不使用 AND 或 OR 来检查多个属性?如果不是,否认这种行为的逻辑是什么?

问题描述

请考虑下表

|id| first_name| last_name| nick_name|

查找与特定值匹配的名称的最佳方法是什么?以下查询有效,但有没有更好的方法?

select * from names where first_name = val OR last_name = val OR nick_name = val

我可以做类似的事情 -

select * from names where first_name OR last_name OR nick_name = val

如果不是,那么为什么 mysql 不允许在一个条件下对多个属性执行检查?

标签: mysql

解决方案


您可以使用 MySQL 的 IN 函数。

MySQL IN() 函数在给定参数中找到匹配项。

select * from names where val IN(first_name,last_name,nick_name);

这不起作用:

select * from names where first_name OR last_name OR nick_name = val

因为这总是会导致错误的情况。


推荐阅读