問題是這樣的:
表persons有兩個字段: id和name
文本文檔persons.txt中內(nèi)容(其中每行字段之間用tab分割):
1 Bush
2 Carter
3 Bush
在mysql命令行下使用 load data local infile “persons.txt” into table persons 導(dǎo)入數(shù)據(jù)到persons表中。
導(dǎo)入后查看persons表的數(shù)據(jù),與persons.txt的內(nèi)容一致。但是使用語句
select distinct name from persons
查詢,結(jié)果中Bush出現(xiàn)了兩次(正常結(jié)果應(yīng)該是Bush只出現(xiàn)一次)。
原因分析:
經(jīng)過分析,發(fā)現(xiàn)原因是windows下?lián)Q行符為"/r/n",而mysql在load data時默認(rèn)使用"/n"來切割每行記錄,導(dǎo)致插入到表中前兩條記錄的name字段末尾多插入了不可見字符"/r";也就是說使用distinct關(guān)鍵字查詢出來的兩個Bush中,第一個詞尾有回車符"/r”,而第二個詞尾沒有。
說明:
1. mysql默認(rèn)使用tab來分割每行的字段。
2. 因為linux下?lián)Q行符為"/n",所以在linux下不會出現(xiàn)上述問題。
修改方法:
只要在導(dǎo)入數(shù)據(jù)時指定以"/r/n"來換行就可以了。
修改后的導(dǎo)入數(shù)據(jù)語句為:
新聞熱點
疑難解答
圖片精選