嘗試這一個 -
+行位置
SELECT car_id, url, signup, CONCAT(pos1, '/', @p1) position FROM (
SELECT
c.*,
@p1:[email protected]+1 pos1,
@p2:=IF(car_id = 3 AND @p2 IS NULL, @p1, @p2)
FROM
cars c,
(SELECT @p1:=0, @p2:=NULL) t
ORDER BY
signup
) t
WHERE
pos1 BETWEEN @p2 - 1 AND @p2 + 1
您寫道: 期望的結果將是:POS機,nextid,nexturl,previd,prevurl
嘗試此查詢:
SELECT
@p2 pos,
MAX(IF(pos1 > @p2, car_id, NULL)) nextid,
MAX(IF(pos1 > @p2, url, NULL)) nexturl,
MAX(IF(pos1 < @p2, car_id, NULL)) previd,
MAX(IF(pos1 < @p2, url, NULL)) prevurl
FROM (
SELECT
c.*,
@p1:[email protected]+1 pos1,
@p2:=IF(car_id = 3 AND @p2 IS NULL, @p1, @p2)
FROM
cars c,
(SELECT @p1:=0, @p2:=NULL) t
ORDER BY
signup
) t
WHERE
pos1 BETWEEN @p2 - 1 AND @p2 + 1
查詢本身的作品,但我沒有得到行的位置只有行本身。它用於在頁面上導航,以允許瀏覽頁面。其顯示爲< 15/280 >。 15將是問題查詢中行的位置。你在回答中所涉及的下一個和前一個行。 – Rufinus
...我看到了你想要的結果。該查詢應該被重寫。 – Devart
看看第二個查詢。 – Devart