我有一個場景,我需要獲得一組結果升序順序但只給出降序順序中的最後一個ID。帶有正向結果的MySQL後向查找
順序將總是依次作爲ID升序被然而自動產生的,我不能保證ID序列是完整的。即我不能說8 - 3 = 5,因此從5進行正向查找。
實現這一點最有效的是什麼。如果可能我想避免在應用程序邏輯中操作集合,但可以作爲最後的手段。
我有一個場景,我需要獲得一組結果升序順序但只給出降序順序中的最後一個ID。帶有正向結果的MySQL後向查找
順序將總是依次作爲ID升序被然而自動產生的,我不能保證ID序列是完整的。即我不能說8 - 3 = 5,因此從5進行正向查找。
實現這一點最有效的是什麼。如果可能我想避免在應用程序邏輯中操作集合,但可以作爲最後的手段。
你可以做一個內部的選擇:
SELECT *
FROM (
SELECT *
FROM your_table
WHERE id <= X
ORDER BY id DESC
LIMIT Y
) d
ORDER BY id ASC
您可以定義自己的rownum
具有查詢和應用mod
得到每3個記錄,無論它的ID,如:
SELECT *
FROM (SELECT id, name, @rownum := @rownum + 1 as `num`
FROM test, (SELECT @rownum := 0) a) b
WHERE b.num % 3 = 0;
這裏的SQL Fiddle。
按OP要求,這將每X選擇一行,而不是來自指定ID的X行。 –
向我們展示您的表格結構/數據,並突出顯示我們可以使用哪些信息來施加所需的排序。 –
問題是表結構發生變化。這是基於光標的分頁的實現。所提供的信息是所有表格中唯一的常見數據。 – tarka
如果沒有表格結構,我懷疑你會得到答案。 –