• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Пара глупых вопросов

  • Автор темы Автор темы vital
  • Дата начала Дата начала
V

vital

Итак.
1. В табличке надо хранить последние 1000 записей(по дате, типа 1000 самых новых). => Хотелось бы как-нить при (перед ним?)INSERT INTO обрубать лишние, старые записи. Так можно? Как вообще покрасивше можно?=)
2. 2 таблички. Нужно выбрать из первой те строки, в которых столбец to != ни одному из значений столбца login второй таблички
Типа такого
SELECT * FROM Emails,Private WHERE Emails.to <> Private.login
И обратный запрос выбрать только те, в которых равен.
ПС.
Да-да-да, знаю что хрестоматийный пример, и что в любой книжке.. Но не до того, честно.
 
Второй вопрос легко решился с помощью ANY. Напомните мне на будущее, не называть столбец "TO"? хорошо? Я думал, что я корч не могу запрос составить, а оказалось что я корч не все служебные слова выучил..
В силе остается первый вопрос. Как при INSERT'e обрезать лишние старые строки? Не охота в 2 запроса(
 
1 - Зачем удалять, кому мешают?
Мне пофигу, заказчик так хочет.
может триггер на вставку записей?
Хм, может..<!--shcode--><pre><code class='sql'>CREATE TRIGGER name AFTER INSERT ON table
FOR EACH ROW BEGIN
SELECT count(id)as n from table;
DELETE FROM table ORDER BY `age` DESC LIMIT n-1000
END;[/CODE]
Как то так что ли? хм..

Добавлено: Не работает кста(
 
В итоге пришел к такому.. Вроде оно
[sql]CREATE TRIGGER name AFTER INSERT ON emails
FOR EACH ROW BEGIN DELETE FROM emails WHERE id not in (select id from emails order by date desc LIMIT 1000 );
END[/sql]


Добавлено: ФАААААК!
This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
Еще есть варианты?
 
Какая версия мускула?
Если 5.01 то можно job повесить на чистку.
Если нет то пиши хранимку.
 
ну первое точно с триггером надо...а вот второе...
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab