2014-09-13 59 views
0

我想从mysql读出id,然后用id-1删除条目。在shell脚本(Linux)中的Mysql数组

today_time=$(date -d "now" '+%d-%b-%Y %H:%M:%S') 
query_find_id="SELECT id FROM guestlist WHERE value <= '$today_time'" 

array_query=$(mysql -u $USER -p$PASSWORD $TABLE_NAME -e "$query_find_id") 

array_id=($(for i in $array_query; do echo $i; done)) 

for j in "${array_id[@]}"; k=$j-1; mysql -u $USER -p$PASSWORD $TABLE_NAME -e "DELETE FROM guestlist WHERE id = '$k'"; done 

数组每次都是空的。我究竟做错了什么?

+0

学习使用'set -vx'并检查每行的输出。当你到达第三行时,你可能会看到'query_find_id'是空的。 (同意@tgx的答案。)祝大家好运。 – shellter 2014-09-13 20:49:42

回答

1

如果您value列是一个DATETIME,在today_time您的日期格式应该是%Y-%m-%d%H:%M:%S

+0

其实我在列表中的值类似于'12 Sep 2014 15:00:00' – Simon 2014-09-13 20:50:37

+0

您在查询中使用WHERE值<='$ today_time''。 “值”是什么列类型? – lxg 2014-09-13 20:51:41