我有一個MySQL查詢:mysql倒數第5個?
SELECT `name` FROM `table1` WHERE id='0' ORDER BY `id` DESC LIMIT 5
這是確定的,它讓我在過去5個元素與最後的表是返回數組中的第一個。好。
但是!我試圖得到正常表順序中的最後5個(因此主表中的最後一個將是返回數組中的數字5,並且之前的那個將是4等)。
我試過ASC, t工作...
我該怎麼做?
我有一個MySQL查詢:mysql倒數第5個?
SELECT `name` FROM `table1` WHERE id='0' ORDER BY `id` DESC LIMIT 5
這是確定的,它讓我在過去5個元素與最後的表是返回數組中的第一個。好。
但是!我試圖得到正常表順序中的最後5個(因此主表中的最後一個將是返回數組中的數字5,並且之前的那個將是4等)。
我試過ASC, t工作...
我該怎麼做?
讓你查詢subquery:
SELECT `name`
FROM (SELECT `id`, `name` FROM `table1` WHERE id='0' ORDER BY `id` DESC LIMIT 5) tmp
ORDER BY `id` ASC
#1248 - 每個派生表都必須有自己的別名? – David19801 2011-02-28 09:20:31
@ David19801:你說得對。謝謝。 :) – Gumbo 2011-02-28 09:21:30
所以是他們的一種方式? – David19801 2011-02-28 09:22:18
試試這個
select `name`
from (
select `id`, `name`
from `table1`
where id='0'
order by `id` desc
limit 5
) as source
order by `id` asc
您發現在您的5分鐘前發佈了確切的答案,您有什麼要補充的嗎?如果是,請更新您的答案,否則請刪除它,並提出Gumbo的答案。 – 2011-02-28 09:25:33
@The事實上,Gumbo的查詢在10分鐘前產生了一個錯誤:) – 2011-02-28 09:32:58
爲了簡單:使用點即table1.name,例如
$query = "SELECT * FROM `users` ORDER BY `users`.`date_of_rsvp` DESC";
我認爲這應該工作。
既然你是*篩選*爲一個'ID',你如何定義**最後**,插入順序?其他一些列? – 2011-02-28 09:18:32
插入順序(id爲自動增量) – David19801 2011-02-28 09:21:16
如果'id'是一個自動增量,因此(最有可能)是'UNIQUE KEY',那麼您的查詢最多隻返回1行。 – 2011-02-28 09:22:26