Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql insert查询以不同的顺序存储数据_Mysql - Fatal编程技术网

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