为什么我在DELETE QUERY中使用表别名但在SELECT QUERY
中没有出现错误这个工作正常
SELECT * FROM tablename a WHERE a.fieldname > 10
这个显示错误消息
DELETE FROM tablename a WHERE a.fieldname > 10
错误讯息:
#1064 - 您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以便在'a WHERE a.field .....
附近使用正确的语法
答案 0 :(得分:1)
尝试:
DELETE a FROM tablename a WHERE a.fieldname > 10
(当然,别名在单个表语句中几乎没用。)
回答第二个问题
多表DELETE
的语法如下:
DELETE t1
FROM table1 AS t1
LEFT JOIN table2 t2 ON t1.foo_id=t2.foo_id
WHERE t1.foo1 > 0
即,你必须告诉你要从哪个表中删除行(在单个表语句中它不是必需的,因为只涉及一个表)。
答案 1 :(得分:0)
猜猜是什么......你不能在DELETE
使用别名。完全停止。故事结束。
这将有效:
DELETE FROM tablename WHERE fieldname > 10;
答案 2 :(得分:0)
通过查询中的少量修改,我得到了相同的错误。 所以你的查询应该是:
DELETE a FROM tablename a WHERE a.fieldname > 10;