Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2014, 00:35   #1
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию Удалять строки из таблицы

Имеется столбик prost_chat как в нем выполнить проверку, если больше 20 строк то удалить первую строчку, чтобы не когда там не было больше 20 строк.
UKRtortik вне форума Ответить с цитированием
Старый 26.06.2014, 01:02   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

кто на ком стоял?
eval вне форума Ответить с цитированием
Старый 26.06.2014, 09:59   #3
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

столбик - это наверное таблица, да? а строка - запись
сначала найти кол-во всех записей SELECT COUNT(*) FROM T
удаление - DELETE FROM T LIMIT 0,20 - удалит с 0 20 записей...
вам нужно удалять (общее кол-во - 20) - тогда будет оставаться только 20 записей
ADSoft вне форума Ответить с цитированием
Старый 26.06.2014, 14:31   #4
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

Хех:

Код:
DELETE FROM `prost_chat` WHERE `id` in 
(SELECT `id` FROM (SELECT `id` FROM `prost_chat` WHERE `id` not in (SELECT `id` FROM (SELECT `id` FROM `prost_chat` ORDER BY `id` DESC LIMIT 20)x))y)
Kostia вне форума Ответить с цитированием
Старый 26.06.2014, 16:01   #5
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

ужас, я представляю как у вас там цмф работает ...
eval вне форума Ответить с цитированием
Старый 26.06.2014, 16:27   #6
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

Цитата:
ужас, я представляю как у вас там цмф работает ...
нет, не представляете

Код:
DELETE FROM T LIMIT 0,20
DELETE не поддерживает offset, в mysql 5.5

Подзапросы не поддерживают LIMIT и еще много чего

Можно еще так:
Код:
DELETE FROM `prost_chat` WHERE `id` <= (SELECT `id` FROM (SELECT `id` FROM `prost_chat` ORDER BY `id` DESC LIMIT 20,1)x)
Ну или на php, как и написал ADSoft.
Код:
$count = $prost_chat->count();
$prost_chat->delete($count-20);

Последний раз редактировалось Kostia; 26.06.2014 в 17:03.
Kostia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка таблицы с 2-й строки calypso Microsoft Office Excel 1 05.03.2014 10:58
Соединение несколько полей таблицы с одной таблицей. Как удалять? jean666 SQL, базы данных 0 11.12.2013 12:53
MS SQL SERVER 2005 копирование таблицы из ОДНОЙ БД В другую или перенести все строки из одной таблицы в другую reihtmonbern БД в Delphi 4 17.07.2012 23:25
удалять лишние пробелы из строки eduard17 Помощь студентам 4 19.02.2010 20:42
Вставка строки из таблицы Tanusha SQL, базы данных 0 16.03.2009 10:19