我正在嘗試做一些應該相對比較明智的事情,我想,但是我無法將其包圍。查找具有一定數值的行,然後選擇下一行X行
我想在表中找到某個id,然後選擇符合特定條件的下一個X行。
示例表:
+++++++++++++++++++++++++++++++
| id | type | value | sorting |
+++++++++++++++++++++++++++++++
|1 | 'x' | 'foo' | 1 |
|2 | 'y' | 'bar' | 5 |
|3 | 'z' | 'foo2'| 9 |
|4 | 'z' | 'bar2'| 29 |
|5 | 'x' | 'foo3'| 3 |
|6 | 'z' | 'bar3'| 11 |
|7 | 'z' | 'foo4'| 4 |
+++++++++++++++++++++++++++++++
我要的是選擇下一個X行,其中type = 'z'
從行開始與id = 3
,由sorting
排序。
因此,對於這張表,我想要按順序獲得編號爲3, 6, 4
的行。請注意,編號爲7
的行與類型匹配,但它的值爲sorting
,值低於編號爲3
的行。
這可以在一個查詢中完成嗎?
我的想法:爲示例表,一些因爲這樣會做: SELECT * FROM table WHERE type = 'z' AND sorting > 9 ORDER BY sorting LIMIT 3, X
但很明顯,我不知道該值9,但偏移,所以我需要一種方法到:
- 查找編號爲
3
的排序值。 - 找到ID爲
3
的偏移量。 - 將這些應用於查詢。
編輯:我在哪裏現在:
SELECT
*
FROM table
WHERE type = 'z' AND sorting > (SELECT sorting FROM table WHERE id = 3)
ORDER BY sorting
LIMIT 0, 25
所以最後一步就是要偏移的3
並傳遞作爲第一個參數來限制。
那你試試這麼遠嗎? – Alex
加入問題! – Rein
'限制3,X'做喲需要2? 3?無窮?返回的記錄數量? * 2。找到id 3的偏移量。* - 爲什麼你需要找到偏移量? – Alex