Задать вопрос
Juodvirshis
@Juodvirshis

Условия в mysql?

есть таблица с записями
option 1
setup1 0
setup2 0

как сделать запрос в mysql
если option имеет значение 1 то нечего не делать
если option имеет значение 0 то в setup1 и setup2 записать значения 1
  • Вопрос задан
  • 321 просмотр
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
Athanor
@Athanor
Лайк + Решение: не жмись, нажми
Добрый час, Евгений.

Предположим, что DDL вашей таблицы следующий:
CREATE TABLE settings (
	caption VARCHAR(255) UNIQUE NOT NULL, -- принимает значения option, setup
	value INT NOT NULL DEFAULT 0
);

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

Проще всего вашу задачу решить таким запросом:
UPDATE settings S1, settings S2
SET S1.value = 1
WHERE 
	S1.caption IN ('setup1', 'setup2')
	AND S2.caption = 'option' AND S2.value = 0;

Обратите внимание, что поле "caption" объявлено с флагом UNIQUE, это добавит индекс и в случае, если значений в таблице достаточно много, ускорит выполнение запроса.

Прошу уточнить, требуется ли разъяснить механизм выполнения запроса.

С уважением,
Олег Раев
CIO of Athanor
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы