MySQl: использовать в конструкции запроса ЕСЛИ

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Подскажите с конструкцией запроса. В запросе для получения нужной записи использую такую конструкцию:

WHERE `mp_0` = 0 OR `mp_1` = 0 OR `mp_2` = 0 OR `mp_3` = 0

После получения записи нужно проверить по какому критерию ее получили и записать в ту ячейку 1. т.е если получили по mp_0 = 0, то пишем туда 1 если по mp_1 = 0 пишем туда 1 если по mp_2 = 0 пишем в нее 1 и т.д.

Суть задуманного брать одну и ту же запись четыре раза подряд и помечать в БД сколько раз мы ее уже взяли.

Немного визуализации.

1. Берем запись если 0 0 0 0 помечаем что ее взяли 1 0 0 0
2. Берем запись если 1 0 0 0 помечаем что ее взяли 1 1 0 0
3. Берем запись если 1 1 0 0 помечаем что ее взяли 1 1 1 0
4. Берем запись если 1 1 1 0 помечаем что ее взяли 1 1 1 1
5. Берем запись если 0 0 0 0 помечаем что ее взяли 1 0 0 0
6. ...
 
Последнее редактирование:

DmitryAk

Client
Регистрация
14.12.2016
Сообщения
860
Благодарностей
824
Баллы
93
Решение "втупую". Все запросы выполнять одним блоком. Обязательно использовать айдишник нужной записи. Порядок запросов не менять.
Код:
update test set x4=1 where (x1 = 1) and (x2 = 1) and (x3=1) and (x4=0) and id = 1;
update test set x3=1 where (x1 = 1) and (x2 = 1) and (x3=0) and (x4=0) and id = 1;
update test set x2=1 where (x1 = 1) and (x2 = 0) and (x3=0) and (x4=0) and id = 1;
update test set x1=1 where (x1 = 0) and (x2 = 0) and (x3=0) and (x4=0) and id = 1;
До выполнений.
upload_2017-8-16_0-33-50.png
После первого выполнения:
upload_2017-8-16_0-34-30.png
После второго:
upload_2017-8-16_0-34-50.png
После третьего:
upload_2017-8-16_0-35-18.png
После четвертого:
upload_2017-8-16_0-35-43.png
 
  • Спасибо
Реакции: one

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Спасибо! буду пробовать. А что это за скрины?
 

DmitryAk

Client
Регистрация
14.12.2016
Сообщения
860
Благодарностей
824
Баллы
93
  • Спасибо
Реакции: one

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)