我有一个微控制器当前正在将数据发送到mysql数据库,并且使用\b
可以正常工作。问题在于此方法附加到末尾。
有没有办法将mysql附加到第一行而不是最后一行?
例如,如果我当前的mysql表有10行(第1-10行),则新数据将插入到第1行,而其他10行将被推送到第2-11行。这有可能吗?我不是编程新手,但我是MySQL新手!
答案 0 :(得分:1)
默认情况下,不对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
答案 1 :(得分:0)
只是补充其他答案,使观点很明确。
在像MySQL这样的SQL数据库中,没有像表行的顺序那样的东西。这是SQL规范的一部分,它使数据库引擎可以自由地[内部]整理所有想要的数据,以保持其安全性并生成快速查询。简单来说:“ SQL数据库不是Excel工作表。”
如果要按特定顺序检索数据,只需在ORDER BY
语句中使用SELECT
指定首选顺序。