0
我試圖編寫一個mysql查詢,該查詢返回單行中給定行的字段,以及匹配行中的幾個字段「之前」的位置,以及「下一個」位置的相同字段。我在MySQL的很新,但對於所有的淘淨的答案,這是最好的,我可以這樣做:mysql在同一個表中返回前一個和下一個子查詢中的多個列
SELECT *,
(select id
from mytable t2
where t2.added_on < t.added_on
order by t2.added_on DESC
limit 1
) as prev_id,
(select id
from mytable t3
where t3.added_on > t.added_on
order by t3.added_on
limit 1
) as next_id FROM mytable as t ORDER BY `added_on`
它的工作原理,但只給了我id
場「上一頁」和「下一個」。如您所知,在子查詢中使用*
(或'id', 'title'
)而不是id
會給出錯誤。我研究過使用JOIN
和其他一些方法,但我只是沒有得到它。
爲什麼你不只是3行?我的意思是3個查詢...或者像這樣使用'UNION':http://stackoverflow.com/a/20849223/2737474 – 2014-10-30 21:00:49
@CharlesRojas,這對我的情況如何?我嘗試了顯而易見的方法,但那並不奏效。 – insaner 2014-10-30 21:27:24
我檢查了文檔,不'UNION'返回結果作爲不同的行?而不是在同一行?如果可能的話,我希望我的結果在同一行。 – insaner 2014-10-30 21:38:12