有沒有辦法按順序返回結果?MySQL:返回結果及其順序
樣品:運行在quiz
表以下查詢:
select q.category_id, q.quiz_id, concat('Quiz ',q.name) name
from quiz q
where q.category_id = 11
order by q.category_id ASC
limit 2
offset 2;
表quiz
(結構):
+-------------+---------+-------+
| category_id | quiz_id | name |
+-------------+---------+-------+
| 10 | 10 | math |
| 11 | 10 | sport | => Quiz Sport 1
| 11 | 11 | sport | => Quiz Sport 2
| 12 | 10 | Geo. |
| 11 | 15 | sport | => Quiz Sport 3
| 11 | 12 | sport | => Quiz Sport 4
| 10 | 17 | math |
| 11 | 20 | sport | => Quiz Sport 5
| 11 | 22 | sport | => Quiz Sport 6
| 10 | 19 | math |
+-------------+---------+-------+
回報:
+-------------+---------+------------+
| category_id | quiz_id | name |
+-------------+---------+------------+
| 11 | 15 | Quiz sport |
| 11 | 12 | Quiz sport |
+-------------+---------+------------+
http://sqlfiddle.com/#!9/110752/2
有沒有辦法與測驗編號順序返回結果,就像這樣:
+-------------+---------+--------------+
| category_id | quiz_id | name |
+-------------+---------+--------------+
| 11 | 15 | Quiz sport 3 |
| 11 | 12 | Quiz sport 4 |
+-------------+---------+--------------+
你需要有另一場'爲了by'確定正確的順序。 Sql存儲無序 - 所以你將無法保證結果,除非你可以通過另一個字段進行排序。 – sgeddes
在MySql以外的任何地方,這都會更容易**,因爲由於某些原因,MySql沒有窗口函數,即使它們已經超過10年的ANSI標準的一部分。使用窗口函數,這是一個簡單的'row_number()'調用,它在Postgresql,Oracle,Sql Server,DB2,sybase以及我能想到的其他任何東西中都支持,但不支持mysql。 –
這個「測驗」表沒有主鍵? –