Обновление оператора в SQL / PSQL - PullRequest
0 голосов
/ 24 марта 2020

Я новичок в поле SQL и у меня тупой вопрос. Предположим, у меня есть таблица в моей базе данных, которая содержит следующую информацию:

ID        name     food
1         Max      apple
2         Anne     banana
3         Tom      kiwi

позволяет сделать вид, что это группа детского сада, которая ела эти продукты. Через 2 часа Макс съел клубнику, и я не хочу добавлять это в список. Я хочу, чтобы список выглядел так:

ID        name     food
1         Max      apple, strawberries
2         Anne     banana
3         Tom      kiwi

Я уже пробовал его с помощью оператора UPDATE в SQL, но все они хотят оператор if, который я лично не понимаю. У кого-то есть идея, как я могу сделать это в одном утверждении? Спасибо!

1 Ответ

1 голос
/ 24 марта 2020

Лучшее, что вы можете сделать, это использовать несколько таблиц:

  • Пользователи (ID, имя)
  • Еда (ID, имя)
  • UserFoods ( ID (необязательно), user_id, food_id)

Затем вы можете связать столько продуктов, сколько вы хотите, с каждым пользователем. Вы также можете добавить столбец datetime в UserFoods, если это необходимо, и т. Д. c.

* Вы не будете использовать UPDATE, но операторы SET и DELETE ...


Сказал, что Ответ на ваш вопрос будет следующим:

UPDATE users 
   SET food = CONCAT(food, ', ', 'strawberries') 
 WHERE name = 'Max';

Объяснение: Он выбирает таблицу users и объединяет current food, запятую и пробел , и strawberries в поле питания пользователь с именем Max.

Я использовал имя пользователя, но вы должны использовать идентификатор, так как может быть много пользователей с именем Max ...

...