0

我想知道我们如何使用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 Query 中尝试过。

谢谢你,辛杜

4

1 回答 1

1

您的解决方案适用于大多数 DBMS(数据库管理系统)。据我所知,这在 MySQL 中没有问题。但几年前,我在 DB2 和另一个更奇特的名为“Focus”的 DBMS 中也遇到过类似的问题。

也许这可以帮助:

  • 将完整的 where 块放入一对括号中。
  • 在此块内,再次将每个比较放在一对括号中。
  • 将 IN-Comparison 移动到 where-block 的末尾。

这会将您的示例转换为以下代码:

SELECT *
FROM employee 
WHERE (
    (month(empMonth) = month(curdate())
    AND
    (employeeName IN ('AJAY','VINAY')) 
);
于 2012-04-05T07:24:29.837 回答