2015-07-18 4 views
3

Я пытаюсь удалить определенный вид дубликатов из таблицы, которая может быть выбрана по этому запросу:MySQL DELETE FROM AS

SELECT * 
    FROM `articles` AS t1 
WHERE EXISTS (
       SELECT `id` 
        FROM articles AS t2 
       WHERE t2.link = t1.link AND 
         t2.id > t1.id 
       ); 

Так что я попытался эти два запроса, но они также не кажется работа:

DELETE FROM `articles` AS t1 
WHERE EXISTS (
       SELECT `id` FROM articles AS t2 
       WHERE t2.link = t1.link AND 
        t2.id > t1.id 
      ); 

&

DELETE FROM t1 USING `articles` AS t1 
WHERE EXISTS (
       SELECT `id` 
       FROM `articles` AS t2 
       WHERE t2.link = t1.link AND 
        t2.id > t1.id 
      ); 

возвращают синтаксическую ошибку.

+0

Что ошибка? – phpcoderx

+0

# 1093 - Вы не можете указать целевую таблицу 't1' для обновления в предложении FROM –

ответ

3

Вы можете использовать несколько таблиц в предложении from:

DELETE t1 
FROM `articles` t1 , `articles` t2 
WHERE t2.link = t1.link AND t2.id > t1.id 
2
delete 
from articles using articles, 
    articles a1 
where articles.id > a1.id 
    and articles.link = a1.link 

 Смежные вопросы

  • Нет связанных вопросов^_^