將*.csv文件導入mysql可以使用LOAD DATA INFILE,php
概要寫法:html
具體語法使用可參照:http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#load-datamysql
若是一個表中只有英文字符則導入不出現問題,寫法也極其簡單:sql
遇到的問題一:ports.csv文件中存在中文字符,導入數據後變成亂碼數據庫
首先修改表及字段的編碼方式網絡
經過 show create table ports 查看錶及字段的編碼方式,固然也能夠經過可視化工具修改字段的編碼格式工具
我導入的命令行具體寫法是:編碼
但我修改以上兩項以後我導入數據依舊亂碼,個人CSV文件編碼格式是GBK,spa
在網絡上找到一篇關於此問題的文章:http://www.sqlstudy.com/sql_article.php?id=2008081901,借鑑於文章中的寫法修改語句以下:命令行
至此亂碼變成了正確的中文字符。
遇到的問題二:在導入數據後查看數據時發現CSV文件中第一行有效數據丟失,而多出三行怪異的無效數據行,並且在執行導入命令時有39個警告
首先我使用SHOW WARNINGS;命令查看提示的警告內容,發現CSV文件中的列標題導入數據庫中出現了N多警告,而出現數據錯誤的關鍵緣由在 LINES TERMINATED BY ‘\r\n’ 這句中,由於第一行列標題並無以回車換行字符結束,第一行標題列在轉換過程出錯,也致使了第一行有效數據在導入過程當中出現錯誤。我將csv文件中文件標題的最後一列標題加上一回車後保存數據,CSV中的第一行有效數據終於導入到數據中,但卻多一行標題行數據,經過IGNORE命令可解決。
最後的CSV導入命令行的寫法: