- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
оставит те, которые первыми встретит, т.е. если в таблице уменьшающееся pos, как в примере, то все сработает верно
спасибо! я и не знал про alter ignore
frantic добавил 23.02.2010 в 23:57
ixRock, да у вас все верно извиняюсь
Всё выполняется одним простым запросом:
проверяем:
select * from test where pos not in (select max(pos) from test group by id, uid)
удаляем:
delete from test where pos not in (select max(pos) from test group by id, uid)
Спасибо всем за подсказки
не понял, почему после очистки остались одинаковые id
Потому что uid разные. Столбец id это идентификаторы пользователей которые заходят в аккаунт пользователей с идентификаторами из столбца uid. Типа гости))
Всё выполняется одним простым запросом:
проверяем:
select * from test_table where pos not in (select max(pos) from test group by id, uid)
удаляем:
delete from test_table where pos not in (select max(pos) from test group by id, uid)
Senator007 . То есть нужно создать дубликат таблицы? чтобы из двух выбирать test, test_table
f0x добавил 24.02.2010 в 11:55
Спасибо все получилось. ☝
Незнал даже о таком, очень поучительно.
Senator007 . То есть нужно создать дубликат таблицы? чтобы из двух выбирать test, test_table
Пардон, ошибся сначала написал test, потом думаю дай напишу понятнее и исправил на test_table но не везде исправил
Вот запрос, всё по одной таблице!
select * from table where pos not in (select max(pos) from table group by id, uid)
Senator007 . То есть нужно создать дубликат таблицы? чтобы из двух выбирать test, test_table
Пардон, ошибся сначала написал test, потом думаю дай напишу понятнее и исправил на test_table но не везде исправил
Вот запрос, всё по одной таблице!
select * from table where pos not in (select max(pos) from table group by id, uid)
Select дает сделать, а на DELETE получаю ошибку "You can't specify target table 'table' for update in FROM clause"
А что нужно ещё дописать в этом, чтобы выкидывать не только строки в максимальным id-oм, а строки старее по времее, чтобы оставались только первые например 50?
Одним запросом ;о)
Senator007 добавил 24.02.2010 в 12:26
Да, нужно создать такую же табличку и по ней делать select а из первой делать delete.. Он же сможет делать селект по удаляемой таблице..