以下代码在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