1
當需要排序集合的最後一行時,通常會創建派生表格並重新排序。例如,爲了與自動返回表的最後3個元素遞增id
:是否可以將LIMIT與子查詢結果一起使用?
SELECT * FROM (
SELECT * FROM table ORDER BY id DESC LIMIT 3
) t ORDER BY t.id
由於LIMIT
也有偏移,同樣的結果可能是,如果我們知道線的數量來實現(如10)提前與此查詢:
SELECT * FROM table ORDER BY id LIMIT 3 OFFSET 7
是否有可能運行一個子查詢到count(*)
表和動態使用該號碼建立一個LIMIT
?
SELECT * FROM table ORDER BY id LIMIT 3 OFFSET [ select count() -3 ]
不,「LIMIT」參數必須是文字,它們不能是表達式。如果您需要動態計算限制,則必須在存儲過程的準備好的查詢中執行此操作,或者使用客戶端語言執行此操作。 – Barmar
我在這裏想的很好,但是你可能可以使用'HAVING'和COUNT()'。儘管如此,我不得不測試這個理論。 –
可能的重複http://stackoverflow.com/questions/41149708/using-as-to-avoid-same-query-mysql/41150070#41150070 –