Как я могу установить одно значение и изменить все остальные, если условие выполняется с помощью SQL - PullRequest
0 голосов
/ 28 августа 2018

У меня есть система, где сообщения могут быть добавлены. Когда вы редактируете сообщение, у вас есть возможность сохранить его как версию. Таким образом, люди могут проверить более старые версии текста.

Я пытаюсь добавить возможность установить текст по умолчанию на странице.

Все мои тексты в моей базе данных имеют поле с именем active, которое равно 1, когда добавляется первый текст, и 0 - для всех новых создаваемых версий.

На моей странице, которая показывает текст, всегда отображается текст с активным = 1, поэтому я хотел бы иметь возможность установить активный текст, в то время как все другие тексты из той же категории установлены в 0 или неактивны.

Таким образом, пользователь может выбрать, какая версия отображается по умолчанию.

Как я могу это сделать?

Структура моей базы данных:

enter image description here

Как видите, есть строка с именем parent_id Я хочу изменить все остальные значения только с этим идентификатором.

Итак, скажем, например, я хочу установить id 4 на 1, тогда оба значения id 1 и 5 должны быть 0. В этом случае будут затронуты только parent_id 73.

Как я могу сделать это с помощью SQL? Я видел несколько примеров использования CASE, но это был другой язык БД.

1 Ответ

0 голосов
/ 28 августа 2018

может быть в том случае, если в предложении set

update  my_table 
set active = (case when id  = 4 then 1 else  0  end) 
where parent_id = 73  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...