Mysql insert查询以不同的顺序存储数据
我正在动态编写插入查询并执行。我的问题是:Mysql insert查询以不同的顺序存储数据,mysql,Mysql,我正在动态编写插入查询并执行。我的问题是: INSERT INTO b_records (b_record_id) VALUES ('ac_dashboard_filters'); INSERT INTO b_records (b_record_id) VALUES ('ac_exec_data'); INSERT INTO b_records (b_record_id) VALUES ('ac_filter'); INSERT INTO b_records (b_record_id) VALU
INSERT INTO b_records (b_record_id) VALUES ('ac_dashboard_filters');
INSERT INTO b_records (b_record_id) VALUES ('ac_exec_data');
INSERT INTO b_records (b_record_id) VALUES ('ac_filter');
INSERT INTO b_records (b_record_id) VALUES ('ac_permission');
INSERT INTO b_records (b_record_id) VALUES ('ac_preview_data');
INSERT INTO b_records (b_record_id) VALUES ('account');
INSERT INTO b_records (b_record_id) VALUES ('acct2channel_account');
但是,当我从表b_记录中选择记录时,记录如下所示:
| b_record_id |
+--------------------------------------+
| account |
| acct2channel_account |
| ac_dashboard_filters |
| ac_exec_data |
| ac_filter |
| ac_permission |
| ac_preview_data |
为什么,我获取数据的顺序与插入查询的顺序不同。谁能给我推荐一下吗
为什么,我获取数据的顺序与插入查询的顺序不同
这是因为默认情况下,存储数据时没有固有的顺序,因此在获取数据时,必须使用order by
子句根据需要对数据进行排序(默认为升序
),如
如果在查询中不使用ORDERBY子句,MySQL不保证数据的顺序。在某些情况下,它可能会按照您插入结果的顺序返回结果,但依赖它确实不是一个好主意,因为当在不同的服务器中优化或导入表时,它可能会发生变化
我建议您将“id”字段添加为具有自动递增功能的主键(如果您还没有),并将其用于排序。忘记表中显示的数据顺序,只有在使用
order BY
子句查询时,顺序才适用。如果您想要一个订单,请添加一列,其中包含一个值,该值在排序时将产生正确的订单,并且orderby
it。如果没有orderby
子句,则DB中没有任何内容可以真正指定将某个内容填充到DB中的顺序与返回的顺序相同。
select b_record_id
from b_records
order by b_record_id desc