调试简单的shell脚本给我1064错误

时间:2014-08-08 04:32:41

标签: mysql sql

mysql -u ***** -p***** admin-wp <<EOFMYSQL
DELETE FROM wp_8_posts 
WHERE post_type = 'post' AND DATEDIFF(NOW(), post_date) > 30
ORDER BY post_date
LIMIT 0, 10 
EOFMYSQL

在第1行给出了ERROR 1064(42000):您的SQL语法出错;

2 个答案:

答案 0 :(得分:0)

尝试使用LIMIT 10,而不是将偏移量设置为0,10,就像您查询后必须使用

一样
DELETE FROM wp_8_posts 
WHERE post_type = 'post' AND DATEDIFF(NOW(), post_date) > 30
ORDER BY post_date
LIMIT 10 

检查Manual

答案 1 :(得分:-2)

在mysql上你可以执行如下脚本,把你的脚本放在一个文件中,说myquries.sql,然后执行

注意:您在查询结尾处缺少分号 您的查询中的限制条款不正确 ...它应该按照以下语法...只需将row_count删除

 DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
 [WHERE where_condition]
 [ORDER BY ...]
 [LIMIT row_count]

 mysql -u ***** -p***** admin-wp < myquries.sql

您的语法也有效......只需检查您的查询是否正常。

 $ cat t.sh
 mysql -u ***** -p****** <<EOFMYSQL
 select now();
 EOFMYSQL

 $ sh t.sh
 now()
 2014-08-07 23:49:56