Может выбрать, но не может удалить - PullRequest
0 голосов
/ 19 августа 2011

У меня проблемы с удалением нужных строк из моей таблицы в 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...

Любая помощь очень ценится.

Ответы [ 4 ]

3 голосов
/ 19 августа 2011

Удалить * после DELETE. Обычно вы не удаляете отдельные столбцы, вы удаляете целые строки.

2 голосов
/ 19 августа 2011

Да, вы должны использовать

delete from table1

или, если в запросе более одной таблицы, вам нужно ввести имя таблицы, из которой вы хотите удалить.

delete table1 from table1 inner join table2 on table1.id = table2.t1ID
1 голос
/ 19 августа 2011

Попробуйте DELETE FROM вместо DELETE * FROM, что недопустимо.

1 голос
/ 19 августа 2011

Бросьте *. УДАЛЕНИЕ - это действие типа «все или ничего».

...