SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 20.02.2010 17:01:58

Nick
Участник
Зарегистрирован: 20.02.2010
Сообщений: 7

Удаление строки

Доброго времени суток всем, подскажите пожалуйста как удалить строку(и) с минимальным значением по какому-то столбцу. Пишу вот так, но в ответ получаю ошибку:
DELETE
FROM `perfume`
WHERE `price` = (
SELECT MIN( `price` )
FROM `perfume` );

#1093 - You can't specify target table 'perfume' for update in FROM clause

Неактивен

 

#2 20.02.2010 17:26:34

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Удаление строки

Есть такое ограничение в реализации подзапросов в MySQL. Нужно обходить, например, разбиением на 2 запроса.

SET @p = (SELECT MIN( `price` ) FROM `perfume` );
DELETE FROM `perfume` WHERE `price` = @p;

Неактивен

 

#3 20.02.2010 18:29:59

Nick
Участник
Зарегистрирован: 20.02.2010
Сообщений: 7

Re: Удаление строки

Большое спасибо

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson