該查詢從records
表中選擇不比給定日期早的最舊的行。給定的日期是我從records_queue
表中查詢的最後一行。查詢的目標是循環遍歷從舊到新的行,爲每個用戶一次返回1行。MYSQL按日期循環移動
SELECT `records`.`record_id`, MIN(records.date_created) as date_created
FROM (`records`)
JOIN `records_queue` ON `records_queue`.`user_id` = `records`.`user_id`
AND record_created > records_queue.record_date
GROUP BY `records_queue`.`user_id`
等各個查詢我從records
選擇最古老的行min(date_created)
並返回下一個最早的排>
比records_query
給定日期較大。查詢不斷返回行,直到達到最新記錄。此時,返回相同的行。如果到達最新的行,我想返回最老的(從底部開始 - 一次完整的旋轉)。這怎麼可能使用1查詢?
你是什麼意思你想「重新啓動」?查詢只是返回一組數據。您可以以任何您想要的方式循環訪問應用程序中的數據。在循環的每次迭代中,您都不必回到數據庫。 – David 2012-08-09 00:31:20
你爲什麼要做循環和重新查詢?您可以按照正確的順序返回結果集。 – 2012-08-09 00:35:19
@大衛我的意思是,如果達到最新的紀錄返回最老的(從最舊的行重新開始) – CyberJunkie 2012-08-09 00:37:45