Таблица с Primary-ключом по двум полям: id и year. В ней находятся записи о документах, которые нумеруются id/год (id каждый год сбрасывается в единицу, вы встречали такое, я уверен). Запрос на выборку остающихся записей такой: select * from this_table where 1 order by year asc, id asc limit 0,10
Остальные записи необходимо delete. Как?
Знаю про структуру "not in", но:
- не уверен, как правильно составить с ним запрос
- говорят, что ета штука очень медленная. Есть ли альтернативы?
Примечание:
NetRain (Alexander Borovikov)
мне тут на соседнем форуме подсказали почти аналогичный запрос: DELETE a
FROM this_table a
LEFT JOIN (SELECT * FROM this_table ORDER BY year, id LIMIT 10) b ON a.year = b.year AND a.id = b.id
WHERE b.id IS NULL
Хотя, я пока ждал, решил сделать двумя запросами в самом PHP (так как в нём пишу). Но лучше воспользуюсь твоим вариантом или тем вариантом с форума. А создавать временную таблицу тоже ИМХО не труЪ
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.