以下代碼在MYSQL表中創建行,但以降序返回它們。按升序創建MYSQL行
如何讓它以升序返回值?
INSERT INTO
rent
(
id
)
select @s:[email protected]+1 as seq
FROM (SELECT @s:=399) AS baseview, rent
WHERE @s<1000;
以下代碼在MYSQL表中創建行,但以降序返回它們。按升序創建MYSQL行
如何讓它以升序返回值?
INSERT INTO
rent
(
id
)
select @s:[email protected]+1 as seq
FROM (SELECT @s:=399) AS baseview, rent
WHERE @s<1000;
使用ORDER BY子句使用確定SELECT時的順序的列。
ORDER BY x ASC
當您插入時,排序無意義。你不應該知道或關心它是如何存儲在底下的。 SQL是聲明式的 - 擔心做什麼,而不是如何。
'INSERT INTO 租金 ( ID ) 選擇@s:= @ S + 1爲SEQ FROM(SELECT @s:= 399)AS基本視圖,租 WHERE @s <1000; ORDER BY id ASC' – methuselah 2011-12-27 16:18:00
如果id
字段是一個主鍵,將它們按升序排列默認返回。或者,強制使用order by id asc
。
關係中沒有固有的順序,主鍵或沒有(儘管你可能會「幸運」並看到抽象泄漏) – 2011-12-27 16:12:44
-1假設任何RDBMS中的任何表中存在默認或默認順序 – gbn 2011-12-27 16:13:48
然後解釋爲什麼100%的時間,當沒有'order by'子句時,結果集以主鍵(不管鍵的類型 - 即使是具有多個字段的主鍵)的遞增順序返回。 – 2011-12-27 18:51:42
現在'INSERT' _returns_行? – 2011-12-27 16:12:10
對不起?我不遵循? – methuselah 2011-12-27 16:24:27
不,我也沒有。你似乎想要一個'INSERT'語句來_return_值,但'INSERT' _inserts_值。 – 2011-12-27 16:29:16