База данных установила ячейку в NULL - PullRequest
0 голосов
/ 31 августа 2011

У меня следующая структура таблицы:

Inventory: userid - a - b - c - d - e - f - g - h - i - j - k

Буквы обозначают слоты инвентаря. Здесь хранятся идентификаторы '. Данные этих продуктов также хранятся в таблице под названием Products. Значения в Inventory связаны с id элемента в Products

Пользователь хочет выбросить товар из своего инвентаря, нажимает кнопку и, используя ajax, id предмета отправляется на сервер.

Как я могу найти и установить в NULL ячейку, содержащую этот продукт, если у меня нет никакой информации, кроме идентификатора?

P.S. Я использую платформу Symfony, если это облегчает задачу.

1 Ответ

1 голос
/ 31 августа 2011

Не лучшее решение, просто идея:

UPDATE Inventory SET a = NULL WHERE a = id AND userid=uid;
UPDATE Inventory SET b = NULL WHERE b = id AND userid=uid;
...
UPDATE Inventory SET k = NULL WHERE k = id AND userid=uid;

Это должно работать, но я не могу запустить его для проверки:

UPDATE Inventory 
SET 
 a = CASE WHEN a=id THEN NULL ELSE a END,
 b = CASE WHEN b=id THEN NULL ELSE b END,
 c = CASE WHEN c=id THEN NULL ELSE c END,
 d = CASE WHEN d=id THEN NULL ELSE d END,
 e = CASE WHEN e=id THEN NULL ELSE e END,
 f = CASE WHEN f=id THEN NULL ELSE f END,
 g = CASE WHEN g=id THEN NULL ELSE g END,
 h = CASE WHEN h=id THEN NULL ELSE h END,
 i = CASE WHEN i=id THEN NULL ELSE i END,
 j = CASE WHEN j=id THEN NULL ELSE j END,
 k = CASE WHEN k=id THEN NULL ELSE k END
WHERE userid=uid;
...