За последние 24 часа нас посетили 17967 программистов и 1589 роботов. Сейчас ищут 1614 программистов ...

Удаление строк, если в базе больше чем нужно

Тема в разделе "PHP и базы данных", создана пользователем iVanoff, 29 июл 2013.

  1. iVanoff

    iVanoff Новичок

    С нами с:
    19 июн 2013
    Сообщения:
    7
    Симпатии:
    0
    Здравствуйте эксперты. Не могу додумать как реализовать такое. В базу постепенно добавляются строки, их становиться все больше и больше и хранить такой объем нет не какого смысла, нужны только последние 500 строк, как удалить все остальные?

    Как я понимаю для начало получаем общее количество строк, после проверяем если количество больше заданного то удаляем, но вот как удалить все строки до определенной строки не могу придумать... Заранее спасибо за помощь!
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.118
    Симпатии:
    1.245
    Адрес:
    там-сям
    думай о критериях что именно оставить, по какому признаку упорядочить. тогда и вопрос отпадет.
     
  3. iVanoff

    iVanoff Новичок

    С нами с:
    19 июн 2013
    Сообщения:
    7
    Симпатии:
    0
    В том то вся и беда что критерий это оставить только последние 500 строк, все остальное сколько бы там ни было и какую бы информацию не содержало, все удалить.
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.118
    Симпатии:
    1.245
    Адрес:
    там-сям
    в реляционной базе нет понятия "последние строки". ты должен указать как минимум сортировку.
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    по айдишнику.
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.118
    Симпатии:
    1.245
    Адрес:
    там-сям
    ок, я подвожу автора к решению: надо
    - вычислить всё, что оставить и затем DELETE WHERE ... NOT IN ... или
    - вычислить "последнюю" запись, которую оставить и затем DELETE WHERE ... > ....

    в любом случае нужен критерий выбора или сортировки. а топикстартер упирается )))
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    он не упирается, ему лень=)