![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
admsasha |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
Есть таблица (id,date,message) с 100 записями. Нужно оставить только последнии 30.
Как удалить все старые записи, оставив только 30 ? |
|||
|
||||
tzirechnoy |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 3 Всего: 16 |
DELETE * FROM ... WHERE id NOT IN (SELECT id FROM ... ORDER BY date DESC LIMIT 30);
|
|||
|
||||
admsasha |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
MySQL 5.1.40 |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 33 Всего: 161 |
delete from table t1 where 30 <= (select count(*) from table t2 where t2.id > t1.id)
-------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
admsasha |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
table, естественно, поменял на свою таблицу. Это сообщение отредактировал(а) admsasha - 6.2.2012, 13:15 |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
admsasha, попробуй вариант tzirechnoy, но оформи подзапрос как View.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
admsasha |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
Akina, так же пишет, что не поддерживается версией.
|
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
В таком разе сделайте через статическую темп-таблицу.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
tzirechnoy |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 3 Всего: 16 |
В MySQL, кажэтся, есть какая-то затычка, похожая на оракловский rownum.
Что-то вроде SELECT @rownum:=@rownum+1 AS rnum, table.* FROM (SELECT @rownum:=0) r, table. Если в WHERE не даст использовать ни rnum, ни @rownum -- можно оформить это вложэнным запросом, а у жэ в невложэнном поставить WHERE rnum < 30. PS Ну и, лично для меня -- ещё одна галочка, что мыскль использовать не следует, а все разговоры, что он сильно продвинулся с 3.23 -- это только разговоры (как был непонятно как сляпанной недореляцыонкой, так и остался). |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |