我在MySQL中从表中删除所需的行时遇到了困难。我使用相当复杂的子查询来选择行,但由于某种原因,我无法使用类似的语法删除它们。
delete * from table1 as t1
where t1.col1 in
(select y.col1
from table2 x
join
(select col1, col2
from table2
where col2 like "%- 2%") y
on x.col2 = replace(y.col2, "- 2", ""));
同样,我可以选择我想删除的确切行,但是当我将查询更改为删除时,我收到以下错误:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near...
非常感谢任何帮助。
答案 0 :(得分:3)
在*
之后删除DELETE
。您通常不会删除单个列,而是删除整行。
答案 1 :(得分:2)
delete from table1
或者如果查询中有多个表,则需要输入要从中删除的表的名称。
delete table1 from table1 inner join table2 on table1.id = table2.t1ID
答案 2 :(得分:1)
放弃*
。 DELETE是一种全有或全无的动作。
答案 3 :(得分:1)
尝试DELETE FROM而不是DELETE * FROM,这是无效的。