为什么将 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/