在 PhpMyAdmin 中将文件导入数据库

Import File to Database in PhpMyAdmin

我想将文件导入 phpmyadmin 数据库。它有 5 列:id、url、lat、lon 和 address。但是,文件的每一行的结构如下:

23947501894 https://farm2.staticflickr.com/1664/23947501894_09e21ac1c4_q.jpg 53.404021 -2.996651 Belgian Merchant Seamen, Queensway (Mersey Tunnel), Liverpool, North West England, England, CH41, United Kingdom

我想输入的大部分数据都是用space分隔的,除非它到达末尾的地址,那里有很多space和逗号。是否可以将这些数据按原样输入数据库?如果可以,有人可以建议我该怎么做吗?

我是 phpmyadmin 的新手,我正在使用 python 来执行此操作。提前感谢您的帮助,我很困惑!

登录PHPMyAdmin,然后执行:

[参考右框]
1. 单击数据库选项卡并创建数据库
2. 单击“导入”选项卡
3. 单击浏览和 select csv 文件
4. 将格式从 SQL 更改为 CSV
5. 点击开始

您必须在导入前处理文本文件,因为分隔符也未转义显示,与您的数据一致。

好消息是您的数据格式让这一切变得非常简单。取前四个空格并将它们转换为特殊字符(可能是 ;~,这些字符不会出现在您的数据中的其他任何地方)。您可以使用您最喜欢的流编辑器或文本操作程序来完成此操作(sed、awk、perl 和 python 都是这项工作的理想选择)。

有很多方法可以做到这一点(see also these answers 想知道有多少种不同的方法,但请注意问题是关于处理整个 文件 并且我们想在单个 ) 上工作,但可能最简单的是 运行 sed 四次:

for i in $(seq 4) ; do sed -i -e 's/ /~/' ~/import.csv  ; done

确保使用文件的副本执行此操作,因为这将就地编辑指定的文件。

然后从您的 phpMyAdmin 导入选项卡中,您将使用 ~(或您使用的任何分隔符)作为 "Columns separated with:" 的值,并将除 [=39= 之外的所有其他值留空] 在 "Lines terminated with:"

您的导入设置应如下所示(同样,用您需要的任何字符替换分隔符):