0

我正在编写一个 shell 脚本来从 mysql 数据库(实际上是数据库的一部分,从特定时间段到另一个时间段)获取表并将其放入 .csv 文件中。这是我写的,我收到一个错误

mysql -u -p -B -e "use mytable;select * from table3;" | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > filename.csv

(mysql的多次查询)

(还请提示我如何从 mysql 表中提取特定时间段的数据,例如 1 月 23 日 16:05 到 1 月 30 日 17:05)

请注意 table3 来自 shell 变量 newtable 所以我必须在代码中使用 $newtable 我必须只使用 shell

4

2 回答 2

0

在脚本中使用 newtable:

newtable="table3"
"mysql -u -p -B -e "use mytable;select * from $newtable;"

对于查询部分,假设您使用的是“日期类型”列,名称为“期间”,那么查询将是:

"Select * from table3 where MONTHNAME(period)='January';

根据您的要求检查此最新更新:

 date="2010-08-11"
 start="10:09:09"
 end="21:50:59"

"Select * from table3 where DATE(period)='$date' and TIME(period) between  
'$start'and '$end'";
于 2013-08-22T06:50:11.767 回答
0

如果您可以使用 mysql 查询到 csv 文件:

echo "SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM $newtable;" | mysql -u -p -B 表

更多信息:http ://dev.mysql.com/doc/refman/5.1/en/select-into.html

于 2013-08-22T08:44:14.073 回答