php - 为什么将csv上传到mysql时,数据会改变顺序?

标签 php mysql csv

为什么将 csv 上传到 mysql 时,数据会改变顺序?

我创建了这个表:

CREATE TABLE earthquakes (
 idserial VARCHAR(30),
 milliseconds BIGINT,
 latitude FLOAT,
 longitude FLOAT,
 magnitude FLOAT,
 ipocentro FLOAT,
 source VARCHAR(4),
 region SMALLINT,
 PRIMARY KEY(idserial),
 INDEX indice_milliseconds(milliseconds),
 INDEX indice_lat_lng(latitude,longitude),
 INDEX indice_magnitude(magnitude),
 INDEX indice_ipocentro(ipocentro)
);

在我的 csv 文件中,数据按以下顺序排列:

"1900-07-29-1-0",-2190913260000,-10,165,7.6,0,"U",184
"1900-10-09-1-0",-2184672720000,60,-142,7.7,0,"U",19
"1900-10-29-1-0",-2182952940000,11,-66,7.7,0,"U",94
"1901-08-09-1-0",-2158405140000,-22,170,7.9,0,"U",189
"1901-08-09-2-0",-2158385220000,40,144,7.5,0,"U",229
"1902-04-19-1-0",-2136584220000,14,-91,7.5,0,"U",70
"1902-08-22-1-0",-2125782000000,40,77,7.7,0,"U",320
"1902-09-22-2-0",-2123108040000,18,146,7.5,0,"U",216
"1902-09-23-1-0",-2122954920000,16,-93,7.8,0,"U",61
"1903-01-14-1-0",-2113254780000,15,-98,7.7,0,"U",66
"1904-06-25-1-0",-2067592461000,51.565,161.417,7.5,15,"U",219

记录按从最早日期到最近日期的顺序排序。但加载后是这样的:

"1904-06-25-1-0",-2067592461000,51.565,161.417,7.5,15,"U",219
"1903-01-14-1-0",-2113254780000,15,-98,7.7,0,"U",66
"1902-09-23-1-0",-2122954920000,16,-93,7.8,0,"U",61
"1902-09-22-2-0",-2123108040000,18,146,7.5,0,"U",216
"1902-08-22-1-0",-2125782000000,40,77,7.7,0,"U",320
"1902-04-19-1-0",-2136584220000,14,-91,7.5,0,"U",70
"1900-07-29-1-0",-2190913260000,-10,165,7.6,0,"U",184
"1900-10-09-1-0",-2184672720000,60,-142,7.7,0,"U",19
"1900-10-29-1-0",-2182952940000,11,-66,7.7,0,"U",94
"1901-08-09-1-0",-2158405140000,-22,170,7.9,0,"U",189
"1901-08-09-2-0",-2158385220000,40,144,7.5,0,"U",229

他们不尊重最初的顺序......

可能是我有像PRIMARY KEY这样的字段idserial(第一个值),它是一个字符串(唯一)而不是具有自动增量的数值?

最佳答案

SQL 表表示无序集。如果您希望数据按特定顺序排列,则在查询表时需要 order by 子句。

如果您想添加自动递增的 id 列(我推荐),那么您可以让该列保留 CSV 文件中的原始顺序。只需创建包含该列的表,并在 load data 语句中列出所有其他列即可。

关于php - 为什么将csv上传到mysql时,数据会改变顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44871265/

相关文章:

php - 在php中获取mysql用户定义的变量

php - Laravel/ Eloquent : replace with() for leftjoin() or join()

javascript - CSV 未导入

c++ - 提神气缓

mysql - MariaDB 在 MySQL 上运行时创建函数时出错

java - 通过正则表达式匹配csv文件中的空行

php - 访问多个复选框的值

javascript - 如何在谷歌地图中添加标记?

php - 需要 jquery 动画帮助

php - MYSQL查询神奇地抓取数值