SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 17.06.2012 21:23:16

Марк
Активист
Зарегистрирован: 31.05.2010
Сообщений: 157

Удаление определенного количества строк mysql

Здравствуйте, есть таблица

id visits
1  4
2  6
3  3
4  1
5  8
6  2

как удалить записи с наименьшим visits если их в таблице больше 4-х если <= не трогать?
и удалить так чтобы записей всегда оставалось 4?

Отредактированно Марк (17.06.2012 21:23:55)

Неактивен

 

#2 17.06.2012 21:33:38

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Удаление определенного количества строк mysql

Здравствуйте. Приведите пожалуйста варианты наборов, когда надо удалить, и когда не надо. Последнее предложение вообще непонятное.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 17.06.2012 22:57:17

evgeny
Гуру
Зарегистрирован: 04.05.2009
Сообщений: 335

Re: Удаление определенного количества строк mysql

Можно так


delete from t1
where id in(
select id from
(select id,(@a:=@a+1) b from t1,(select @a:=0) v order by visits desc) t2
where t2.b>4
)
 


t1 - это ваша таблица

Отредактированно evgeny (17.06.2012 22:58:25)

Неактивен

 

#4 18.06.2012 21:32:47

Марк
Активист
Зарегистрирован: 31.05.2010
Сообщений: 157

Re: Удаление определенного количества строк mysql

evgeny написал:

Можно так


delete from t1
where id in(
select id from
(select id,(@a:=@a+1) b from t1,(select @a:=0) v order by visits desc) t2
where t2.b>4
)
 


t1 - это ваша таблица

Спасибо))

Неактивен

 

Board footer

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