2017-09-07 12 views
0

私はこのクエリを持っている:いずれかを選択し、クエリ内のユーザステータスを選択し、日付少ない今日

$sqlquery="SELECT * FROM tableusers WHERE status = 'off' IN (SELECT DATE(mydate) AS mydate FROM tableusers where mydate < CURDATE()) "; 

このリターン:

off 
off 
on 

これはオフ純粋返す必要があります:

どう
off 
off 
off 

私はちょうど今日より少ない条件で昔の日に応じてユーザーの状態を返すことができますか?

+1

WHERE status = 'off' IN .... 'は本当に意味がありません。 – Uueerdo

答えて

0

申し訳ありませんが、私はあなたの質問をはっきりと聞かなかったし、コメントの評判も十分ではありません。 状態が今日未満CURDATE()ある MyDateに該当オフとであり、

SELECT * FROM tableusers WHERE status = 'off' AND mydate < CURDATE()

これは、すべての行を返します。以下は、あなたが試みることができる1つの解決策です。

私たちがそれをはっきりと理解できるように、あなたの質問を精緻にしてください。あなたの質問の目的は何ですか?あなたはどんなアウトプットを期待していますか?

0

これはあなたのクエリです:

SELECT * 
FROM tableusers 
WHERE status = 'off' IN (SELECT DATE(mydate) AS mydate 
         FROM tableusers 
         WHERE mydate < CURDATE() 
         ); 

あなたはそれに何かを参照していますか?ほとんどのデータベースは、INの近くの構文エラーで失敗します。

それは非常に珍しい構造ですので、それは次のように解析された場合、私はわからない:

WHERE (status = 'off') IN (SELECT DATE(mydate) FROM tableusers WHERE mydate < CURDATE()); 

か:

WHERE status = ('off' IN (SELECT DATE(mydate) FROM tableusers WHERE mydate < CURDATE())) 

私はその事実に基づいて(後者を推測していますいくつかの行が返されます)。 "off IN"部分はブール値を返し、0として扱われます。'on''off'の両方が比較のために数値に変換されるため、0 = 0となり、値は一致します。

日付と日付を比較することをお勧めします。私は、しかし、あなたが本当に意図している論理を知っているわけではありません。

+0

こんにちはゴードン、あなたの質問について:RE:それに何か間違っていますか?ほとんどのデータベースは構文エラーで失敗します。私はMariadbを使用していましたが、実行時にエラーは発生しません:エラー:**** mysqli_fetch_assoc()はパラメータを予期しています(WHERE status =( 'オフ' IN(選択日時からmydateからFROMテーブルアーザーmydate Imylor

関連する問題