【发布时间】:2013-09-18 16:51:50
【问题描述】:
我真的不擅长创建 MySQL 查询,需要一些帮助。我需要创建一个由 cron 作业每周触发一次的 bash 文件——它查询两个表,获取两个表中用户 ID 匹配的数据,并将选择数据添加到 CSV 导出文件中。我希望 CSV 用逗号分隔。现在最好的办法是把它分开。
让这个查询运行的问题是我的语法(我知道这是错误的,因为我只是从网上的各种文章中窃取了 sn-ps)。我确实让每个数据库查询单独工作(从一个表中获取一个查询,另一个表与另一个查询)。现在我需要将它们组合起来以仅获取我需要的数据。
这是我当前的(非工作)查询:
#!/bin/bash
mysql -u USERNAME --password=PASSWORD --database=xxxx_DBNAME --execute='SELECT `xxxx_videotraining_user.user_id`, `xxxx_videotraining_user.training_title`, `xxxx_videotraining_user.status`, `xxxx_users.id`, `xxxx_users.name`, `xxxx_users.user_employer`, `xxxx_users.user_ss_number` WHERE `xxxx_videotraining_user.user_id` = `xxxx_users.id` AND `xxxx_videotraining_user.status` = "Completed" AND `xxxx_users.user_ss_number` > "1" ORDER BY `xxxx_videotraining_user.user_id` LIMIT 0, 10000 AND ' -C > /home/xxxx/subs/vtc/DB_EXPORTS/xxxx_videotraining_completed.csv
我想您可以在这里看到我想要完成的工作 - 任何帮助都将不胜感激!
【问题讨论】:
-
为什么你认为这是
cron特有的?您的问题只是制定查询,您从 cron 运行它的事实是偶然的。 -
很遗憾,没有用于创建 CSV 文件的 CLI 选项。您可以使用
SELECT语句中的INTO OUTFILE子句来做到这一点,但是MySQL 服务器需要对该文件具有写权限。
标签: mysql bash cron export-to-csv