2016-01-06 81 views
1

我使用load data local infile命令将一个csv文件加载到mySQL中。当我查看表格时,行的顺序与csv文件不同。有没有办法让他们按照相同的顺序。表不是以相同的顺序mySQL

+0

使用'ORDER BY column_name'命令查询结果 – RiggsFolly

+1

SQL代表* unordered *集合。如果您希望在表格中排列结果,则需要指定要排序的列。 – Siyual

回答

2

在关系数据库表中没有任何固有的“订单”。如果要按特定顺序查看行,请使用SELECT语句中的ORDER BY子句。如果您通过某个用户界面查看数据,则由用户界面来提供该功能(或不用)。

3

SQL表格表示无序集合。没有订购。然而,有一个窍门。我假设你正在使用load data infile。定义你的表有一个自增标识列:

create table . . . (
    tableId int auto_increment primary key, 
    . . . 
); 

然后,当你从文件到表中加载数据,你可以列出所有字段除了tableId(或者说是场适当)。并明确使用set testId = NULL

然后,您可以使用访问表:

select t.* 
from t t 
order by tableId; 

不幸的是,我从来没有发现的文档,这是保证递增的插入顺序的ID。不过,我确实相信它在实践中有效。

+0

我希望mySQL的顺序与Excel电子表格相同。 – Crt

+2

@Crt。 。 。我假设你正在使用'load data infile'。如果没有,只需在显式排序的电子表格中添加一列,并在获取数据时记得在'order by'子句中包含该列。 –

相关问题