从 SQL 中检索数据到文本中的指定位置

从 SQL 中检索数据到文本中的指定位置

我对 SQL 和 Bash 脚本非常陌生,但即便如此,我还是设法制作了一个包含即将发生的事件的 SQL 表。我设法制作了一个脚本,删除旧事件并将表中的所有内容导出到文本文件。这就是该代码的样子。

#!bin/bash
mysql -uroot -pPass kalender -e "delete from event where datum < now()"
mysql -uroot -pPass kalender -e "select * from event" > textfile.txt

但是我该如何在文本中创建一个特定的字段,像这样..

例如:
(date1) (artist1) 将于 (day1) (time1) 到达 (place1);
(date2) (artist2) 将于 (day2) (time2) 到达 (place2)

答案1

假设表的列的命名event与预期输出中的命名相同,您可以执行以下操作:

mysql -uroot -pPass kalender -B  --disable-column-names -e "select concat('The ', date_format(date1, '%d.%m.%Y'), ' ', artist1, ' will come to place ', place1, ' on ', date_format(day1, '%W'), ' at ', date_format(time1, '%H:%i')) from event" > textfile.txt

笔记:

  • 当然,您可以根据需要更改日期和时间字段的格式。请参阅http://www.w3schools.com/sql/func_date_format.asp以获取完整的格式列表。
  • 如果date1day1time1实际上指的是同一列,那完全没有问题。您只需对所有格式使用相同的列名,格式字符串将决定打印的内容。
  • 我添加了选项-B--disable-column-names抑制选择语句的正常格式。

相关内容