2016-07-10 8 views
0

現在、メンバーテーブルのクエリにMySQL(5.7)を使用しています。MySQLマルチカラムWHERE IN AND

私は次のようにクエリを実行します。期待どおりに動作します

SELECT fname, lname, added 
FROM Members 
WHERE ((fname, lname) IN (('firstname one', 'lastname one'), ('firstname one', 'lastname one'))); 

とメンバー最初の名前、最後の名前とそれらが追加された日付が表示されているのリストを。

しかし、私はメンバーを追加したときに絞るしたい場合は、例えば:

SELECT fname, lname, added 
FROM Members 
WHERE ((fname, lname) IN (('firstname one', 'lastname one'), ('firstname two', 'lastname two'))) 
AND added => '2014-01-01 00:00:00' AND added <= '2014-06-01 00:00:00'; 

私はエラーを取得する:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=> '2014-01-01 00:00:00' AND added <= '2014-06-01 00:00:00'' at line 3 

私は、単一の列にIN句をしようとした場合:

... 
WHERE fname IN ('firstname one', 'firstname two') 
AND added => '2014-01-01 00:00:00' AND added<= '2014-06-01 00:00:00' 

うまくいきます。したがって、問題は2つ(以上)の列にまたがるIN句にあるようです。

私が間違っていることを指摘してもらえますか?

ありがとうございました。ドリューが指摘

+0

最後のクエリでは 'Timestamp'、2番目のクエリでは' added'を使用しています。打ち間違え? 'added'カラムはどのような型ですか? – sagi

+0

はい、それはタイプミスでした。今修正されました。ありがとうございます。 –

+1

'AND added =>'はタイプミスです。なぜ、「間に」 – Drew

答えて

0

として、私は変更:

AND added => '2014-01-01 00:00:00' AND added <= '2014-06-01 00:00:00'; 

へ:

AND added BETWEEN '2014-01-01 00:00:00' AND '2014-06-01 00:00:00'; 

、それが働きました。

ありがとうございました。