0
我需要從今天開始選擇40行,使用日期排序的前10個記錄。用'負數'偏移量選擇
如果MySQL支持的負偏離,它應該是這樣的:
SELECT * FROM `mytable` WHERE `date` >= '2013-10-29' ORDER BY date LIMIT -10, 40;
負偏差不支持。我該如何解決這個問題?謝謝!!!
我需要從今天開始選擇40行,使用日期排序的前10個記錄。用'負數'偏移量選擇
如果MySQL支持的負偏離,它應該是這樣的:
SELECT * FROM `mytable` WHERE `date` >= '2013-10-29' ORDER BY date LIMIT -10, 40;
負偏差不支持。我該如何解決這個問題?謝謝!!!
使用UNION
結合兩個查詢:
(
SELECT *
FROM mytable
WHERE date < '2013-10-29'
ORDER BY date DESC
LIMIT 10
) UNION ALL (
SELECT *
FROM mytable
WHERE date >= '2013-10-29'
ORDER BY date
LIMIT 40
)
ORDER BY date -- if results need to be sorted
行在子查詢排序,所以我不認爲有需要重新排序。 –
@ElonThan:首先,'UNION'不能保證結果集的順序將被保留。其次,即使這樣做,「UNION」左側的結果將按照日期順序排列;並且'UNION'右側的結果將按升序排列。 – eggyal