2012-04-05 14 views
0

IN比較構文を使用してこれを行う方法を知りたい。MySQLの "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で試しました。

はあなたのソリューションは、ほとんどのDBMS(データベース管理システム)の罰金で、 シンドゥ

+6

? –

+2

あなたのお問い合わせが100%正しいと思われます。おそらく他の場所にエラーがあります。 –

+1

これを試すことができます: 'select * from employeeここで( 'AJAY'、 'VINAY')の従業員名)(month(empMonth)= month(curdate()))' –

答えて

1

をありがとうございました。私の知る限り、MySQLでは問題ありません。しかし、何年か前に、私はDB2と "Focus"という別のよりエキゾチックなDBMSで同様の問題を抱えていました。

多分これは役立ちます。

  • を括弧のペアに完全にどこ-ブロックを入れてください。
  • このブロックの内側には、それぞれの比較をもう一組の括弧で入れます。
  • IN-Comparisonをwhereブロックの最後に移動します。

これは、このコードにあなたの例を変換します:あなたはエラーが出るん

SELECT * 
FROM employee 
WHERE (
    (month(empMonth) = month(curdate()) 
    AND 
    (employeeName IN ('AJAY','VINAY')) 
);