1.I創建一個表MySQL限制1返回訂單結果集的最後一條記錄?
create table sort (
a int,
b int,
primary key (a));
2.然後我插入三個記錄
insert into sort values(1, 10), (2, 10), (3, 10);
3.當我選擇使用SQL
select * from sort order by b;
它給出這樣的結果
+---+------+
| a | b |
+---+------+
| 1 | 10 |
| 2 | 10 |
| 3 | 10 |
+---+------+
當我選擇表格時,使用此查詢
select * from sort order by b limit 1;
而且結果集是這個
+---+------+
| a | b |
+---+------+
| 3 | 10 |
+---+------+
這不是我的例外(我想返回的第一個記錄是合理的)。
我的MySQL版本是版本14.14 DISTRIB 23年6月5日,爲osx10.8下(x86_64)
任何能解釋這樣對我?謝謝。
爲什麼要返回第一個?您按列'B'排序,'A'列不相關,MySQL將以不同於GUI中看到的方式將數據存儲在文件中,它對錶格進行排序並抓取具有最低'B'值的列,有更低的'B'排嗎?不,這意味着查詢是正確的,如果你想要返回第一行,然後按b添加訂單,一個 – ogres
有趣。我試了一下(使用innodb和myisam,以防有所作爲),並得到第一行(a = 1),作爲限制1的結果(如您所料)。 –
@ogres補充說,作爲一個答案 – e4c5