MySQL "in"命令

标签 mysql sql

我想知道如何使用 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/

相关文章:

sql - MS-Access:相互合并两个表 "below"

mysql - 在MySQL中匹配没有空格和标点符号的字符串

mysql - 分组依据相同的表ID

php - 如何在php中选择mysql数据库?

mysql - 从两个 SQLFORM.grid 中选择记录并将记录插入到第三个表中

sql - 查询以查找今天和昨天的数据以及伪列之间的差异

java - 使用netbeans中的JTable通过鼠标单击事件更新mySQL数据库中的数据

sql - 跟踪表中的更改

c# - 返回 bool 值以在 C# 中处理的 sql 命令

php - jquery:给用户一条 "no data"消息而不是打印一个空图