2014-09-13 97 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