Как ограничить удаление похожих записей?

Пишу игровой проект. Возник такой вопрос. Есть сумка с вещами. В сумку вещи попадают по своему айди. Но если две шмотки одиниковые лежат, то айдишки у них так же одинаковые. И когда человек хочет продать одну шмотку, то вторая продается автоматически без начисления денег игроку. Как в SQL сделать удаление только первого вхождения по условию? А второе оставить?

ORDER BY `id` DESC LIMIT 1

Пробовал такое, но вы выходит). Буду благодарен за помощь.


Ответы (2 шт):

Автор решения: Алексей Шиманский

У вас логика невереная. Таблица в БД "Сумка" может выглядеть так:

unique_id   player_id   item_id

для реалиазации связи многие ко многим.

Вот тут как раз id будет уникальный и неважно, что у человека может быть три пары перчаток в сумке. Для продажи надо как раз изначально смотреть на эту таблицу и далее джойнить таблицу с items чтобы паосмотреть её цену. А удалять нужно как раз из таблицы со связями, описанной выше по уникальному идентификатору.

→ Ссылка
Автор решения: Eugene X

Ну во первых зачем там order by? Если есть вопросы, то задавай в коментах дополню. Укажи что за версия MySQL или MariaDB они хоть по синтаксису и похожи, но разделены стеной размером в несколько лет.

DELETE FROM `bag` WHERE `id_user` = ? AND `id` = 1 LIMIT 1
→ Ссылка