python - 将 SQL 文件查询为 CSV

标签 python mysql sql csv

我有一个包含以下信息的 SQL 文件:

CREATE TABLE 'people' (
'id' int(11) UNSIGNED NOT NULL,
'email' varchar(255) DEFAULT NULL,
'name' varchar(255) DEFAULT
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO 'people' ('id', 'email', 'name') VALUES
(1, 'a@gmail.com', 'john doe'),
(2, 'b@gmail.com', 'jane doe'),
...
(1000, 'x@gmail.com', 'big cat');

如何在文本文件中查询包含电子邮件列表(每行一个)的 people.sql 文件,并将电子邮件和名称配对写入新的 csv?

最佳答案

假设您已经执行了上面的文件并将数据放入mySQL DB。

可以使用select命令写入csv文件。

SELECT email, name FROM people INTO OUTFILE 'yourfile.csv' FIELDS 
TERMINATED BY ','

在您更新的评论中,您只是想将文本文件中的人名映射到 SQL 命令以执行查询。如果把问题分解,就会变成两个任务。首先是从给定的列表中选择名称,这可以通过以下方式完成:

SELECT email, name FROM people WHERE name IN ('john', 'alice', 'bob') INTO 
OUTFILE 'yourfile.csv' FIELDS TERMINATED BY ','

上面会根据给定的列表生成一个映射。但是您的第二个需要是从文本文件中获取该列表。一种方法是使用 sedtr 实用程序将“每行一个名称”转换为“带逗号的名称列表” .

cat your-name-list.txt | sed -e "s/\([a-zA-Z0-9\=\.\-]*\)/'\1'/g" | tr "\n" ","

不知道你的环境怎么样。但基本上,您想将此结果用作上述 SQL 中的查询条件。希望这能给你足够的想法。

关于python - 将 SQL 文件查询为 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44393781/

相关文章:

c# - 如何公开 Amazon EC2 实例的进程状态

python - 使用 http 请求更新谷歌电子表格

regex - 删除 mysql 字段中第一个 # 之前的所有内容

php - 按降序从表中删除一个值 PHP(可能吗?)

python - 如何用python中的函数改变列表?

python - 根据另一个系列索引从数据框中选择行

mysql - 如何才能最大程度地减少在不经意间更改数据而甚至没有注意到的情况?

mysql - 执行sql删除查询foreach user_id

php - 打印为字符串的 SQL 字段

c# - 将数据发送到 Access 数据库时出错