@ichubinets

Как получить свой id из sql?

Доброго времени суток!
Прошу помочь в небольшой задачей, нужно сформировать sql такого вида:
Есть 20 фотографий которые принадлежат разным пользователям, как сделать чтобы ID 1-ой фотографии у каждого пользователя начинался с 1 и дальше по возрастанию?
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ответы на вопрос 3
EreminD
@EreminD
Кое-что умею
ну табличка
id | user_id | local_id | ...
1 | 1 | 1 | ...
2 | 2 | 1 | ...
3 | 1 | 2 | ...
4 | 3 | 1 | ...
5 | 2 | 2 | ...
6 | 1 | 3 | ...

id - сквозная нумерация
user_id - id пользователя
local_id - id фотографии для этого пользователя

Тогда запрос будет такой:
select * from photos where user_id = 2 and local_id = 1

Получите первую фотографию второго пользователя

А при добавлении следующей, сначала нужно получить наибольшее значение
insert into photos (user_id, local_id, ...)
values (2, (select max(local_id)+1 from photos where user_id = 2 ), ...)
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Только реализовывать такую логику в приложении. Причём при удалении фотографии придётся перенумеровывать оставшиеся.
Но вообще это странная задача, обычно так делать смысла нет.
Ответ написан
Комментировать
@Fortop
Tech/Team lead
При добавлении фотографии, читаете ID последней добавленной для данного пользователя.
И новой присваиваете ID = +1
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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