Как я могу реализовать систему отмены между 0 и 1 значениями? - PullRequest
0 голосов
/ 21 мая 2018

У меня есть столбец с именем deleted, который либо 1, либо 0.Также у меня есть этот запрос:

UPDATE posts SET deleted = {if it is 0, then replace it with 1 and vice versa}

Как я могу реализовать этот оператор {if} в MySQL?

Ответы [ 5 ]

0 голосов
/ 21 мая 2018

MySQL поддерживает оператор IF.

ОБНОВЛЕНИЯ сообщений SET удалено = ЕСЛИ (удалено = 0, 1, 0),

Ссылка дает дополнительную информацию о функции MYSQL IF (): https://www.w3resource.com/mysql/control-flow-functions/if-function.php

0 голосов
/ 21 мая 2018
update posts set deleted=1-deleted

Это работает, принимая предыдущее значение и вычитая его из 1, таким образом, оно по существу охватывает два случая: 0 становится 1, 1 становится 0. Это способ реализовать логическую логику НЕ, когда у вас есть целое числос 0 или 1 значением.

В некоторых реализациях аппаратного и программного обеспечения простое вычитание легче, чем ответвление IF, поэтому оно предпочтительнее.Не думаю, что sql такая вещь.

0 голосов
/ 21 мая 2018

Вы можете использовать IF :

UPDATE posts SET deleted = IF(deleted = 0, 1, 0);
0 голосов
/ 21 мая 2018

Вы можете попробовать это .

Для записи:

update bedrock set sex = case sex when 'F' then 'M' when 'M' then 'F' end;
0 голосов
/ 21 мая 2018

Чтобы поменять флаги, выполните следующие действия:

UPDATE posts SET deleted = CASE WHEN deleted=0 THEN 1 ELSE 0 END;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...