1行(status
は "OK"、 "PI"、 "CBK"、 "NRP"、 "NEW")を選択する必要があります。 」、(status_time
+ 86400)クエリの実行時に、ステータスが過去にすでにあるstatus_time
+ 86400秒を持っている必要がありますように、現在のタイムスタンプであるSMALLER NOW よりこれでなければならず、クエリに記述されているようにします。条件付きのmySQLで時差を計算する
SELECT id FROM leads t JOIN (
SELECT "OKQ" as status, 86400 as diff UNION ALL
SELECT "PI" as status, 3600 as diff UNION ALL
SELECT "CBK" as status, 60 as diff UNION ALL
SELECT "NRP" as status, 3600 as diff UNION ALL
SELECT "NEW" as status, 1 as diff
) s USING (status)
WHERE t.status_time > date_sub(now(), interval s.diff second)
ORDER BY RAND()
LIMIT 1
Nowこのクエリは、「NEW」のレコードの大半を持っていても0
をnum_rows
として返します。NOW
(現在のタイムスタンプ)は4日前+ 1秒よりはるかに大きいので、1行は必須です選択される。
私はあなたが '>'ではなく '<'を望むと思います。 –