@atambalasi

Как удалить первый запись пользователя?

Есть таблица со ссылками
id user_id link

Если количество записи одного юзера больше 10 то удалить 1ый добавленный запись и вставить 10ым новый запись.
Примерно так получаем количество записи
SELECT COUNT(*) FROM links WHERE user_id=43
Проверка в пхп
if($count <= 5)
{
   //sql insert
}else{
   //sql insert
  $links_id_arr = ['3', '14', '35', '10', '43' , '23'];
  //Находим самый маленкий ИД в $links_id_arr
  $min_in_arr  = 3;
$sql = "DELETE FROM links WHERE user_id=43 AND id= $min_in_arr";
}
  • Вопрос задан
  • 247 просмотров
Решения вопроса 2
unitby
@unitby
если тупо в лоб то
первый запрос count и удалить с меньшим id если count = 10
второй вставить

если по умному то не мешало бы поле с датой создания/обновления записи и тогда все можно в один запрос с if сделать

ну и Вы действительно уверены что необходимо удалять?
Ответ написан
@dmitryKovalskiy
программист средней руки
А id автоинкрементальный?
тогда можно так
DECLARE @minId int
SELECT @minId = MIN(id) FROM someTable
WHERE userId = @someUserId
GROUP BY userId

DELETE FROM someTable 
WHERE id = @minId and userId = @someUserId

INSERT INTO something....

Но вообще зачем? Место экономите?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@nozzy
Silex, Symfony, Laravel, SQL
delete from links 
where id = (
  select min(id) 
  from links
  group by user_id
  having count(id) > 9
  and user_id = 222
);
insert into ..... ;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы