我想知道如何使用 IN
比较语法来做到这一点。
当前的 SQL 查询是:
select * from employee
where (employeeName = 'AJAY' and month(empMonth) = month(curdate()))
or (employeeName ='VINAY' and month(empMonth) = month(curdate()))
我尝试使用IN
比较功能,但无法正确设置片段。谁能帮帮我吗?
select * from employee
where employeeName in ('AJAY','VINAY')
and month(empMonth) = month(curdate()); // ERROR.
我在 MySQL 查询中尝试过。
谢谢你, 辛德胡
最佳答案
您的解决方案适用于大多数 DBMS(数据库管理系统)。据我所知MySQL没有问题。但几年前,我在 DB2 以及另一个名为“Focus”的更奇特的 DBMS 中也遇到了类似的问题。
也许这可以帮助:
- 将完整的 where block 放入一对括号中。
- 在此 block 内,将每个比较再次放入一对括号中。
- 将 IN-Comparison 移至 where block 的末尾。
这会将您的示例转换为以下代码:
SELECT *
FROM employee
WHERE (
(month(empMonth) = month(curdate())
AND
(employeeName IN ('AJAY','VINAY'))
);
关于MySQL "in"命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10023792/