mysql追加到第一行,移动其他行

mysql追加到第一行,移动其他行,mysql,sql,Mysql,Sql,我有一个微控制器正在向mysql数据库发送数据,它使用mysqli_insertX,X工作正常。问题是这个方法附加到了末尾 有没有办法让mysql附加到第一行而不是最后一行 例如,如果我当前的mysql表有10行,第1-10行,新数据将插入到第1行,其他10行将推送到第2-11行。这是可能的吗?我对编程并不陌生,但我对MySQL还是陌生的。谢谢大家 默认情况下,MySql表不按顺序排列。通常,对表的简单查询可以按创建的顺序返回行,但这不是约定。你不能相信这一点 确保按特定顺序获取行的更好方法是将

我有一个微控制器正在向mysql数据库发送数据,它使用mysqli_insertX,X工作正常。问题是这个方法附加到了末尾

有没有办法让mysql附加到第一行而不是最后一行


例如,如果我当前的mysql表有10行,第1-10行,新数据将插入到第1行,其他10行将推送到第2-11行。这是可能的吗?我对编程并不陌生,但我对MySQL还是陌生的。谢谢大家

默认情况下,MySql表不按顺序排列。通常,对表的简单查询可以按创建的顺序返回行,但这不是约定。你不能相信这一点

确保按特定顺序获取行的更好方法是将关键行分配为自动增量,只有在mysql中创建表时才能这样做:

CREATE TABLE mytable (
    id int NOT NULL AUTO_INCREMENT,
    name varchar(255) NOT NULL,
    amount int,
    PRIMARY KEY (id)
);
之后,您可以插入行,而无需使用“自动增量”字段

INSERT INTO mytable ( name, amount) VALUES ('John', 23);
然后,可以按照使用创建的顺序选择字段

SELECT * FROM mytable ORDER BY id;
并使用子代顺序按与创建相反的顺序选择字段:

SELECT * FROM mytable ORDER BY id DESC;
此外,如果只想拾取最后N行,可以使用LIMIT子句:

SELECT * FROM mytable ORDER BY id DESC LIMIT 10;
但如果需要按创建顺序获取最后N行,则需要嵌套查询:

SELECT * FROM (
  SELECT * FROM mytable ORDER BY id DESC LIMIT 10
) t ORDER BY id ASC

只是为了补充另一个答案,让这一点真正清楚

在像MySQL这样的SQL数据库中,表行的顺序是不存在的。这是SQL规范的一部分,该规范允许数据库引擎[内部]自由地对数据进行它想要的一切信息处理,以确保数据安全并生成快速查询。简单地说:SQL数据库不是Excel工作表


如果要按特定顺序检索数据,只需在SELECT语句中使用order BY指定首选顺序。

这有什么关系?这不应该是一个问题,每行都有一个自动生成的唯一编号。您不知道更改什么样的示例数据和期望的结果会真正有所帮助。SQL表表示无序集,因此表中没有第一行。如果没有上下文,这个问题就没有意义。欢迎发布关于堆栈溢出的帖子!请提供@GordonLinoff要求的数据,并检查以下创建好帖子的指南:。干杯gordon,所以我的数据是[ID,LOGTIME,TEMPERATURE,湿度]我之所以需要它,是因为我已经创建了一个网站,可以实时获取数据并绘制图表,问题是图中的前10个值是旧值,新值被附加到末尾。感谢这个问题实际上是我的网站代码而不是mysql代码,我尽了最大努力修复了你的,所以我接受了你的,感谢感谢感谢这个问题实际上是我的网站代码而不是mysql代码,我已经在MySQL查询中执行ORDER BY,但是我的php代码覆盖了它,这就是为什么它不起作用。感谢您抽出时间回答我的问题!