Как я могу сбросить флаг на ложь, только в одном утверждении, только если он истинен и если его уже истина, просто проигнорировать его? - PullRequest
0 голосов
/ 15 августа 2011

Как я могу сбросить флаг на ложь, только в одном утверждении, только если он истинен и если его уже истина, просто проигнорировать его? Я бы тоже хотел сделать наоборот. Вот ситуация, я хочу забанить пользователя, только если он / она активен, если он / она уже забанен, я не хочу ничего делать. Я также хочу разблокировать пользователя, если он / она забанен, но не хочу ничего делать, если он / она уже активен. Может ли это быть в одном утверждении?

Ответы [ 2 ]

1 голос
/ 15 августа 2011

Нет, это должны быть два оператора (один для установки запрета пользователя, другой - для запрета пользователя), но это не должно быть сложным.

Предполагая, что у вас естьОтметьте «$ banned», вы просто установите для него значение true, если вы хотите, чтобы пользователь был забанен, и false, если пользователь не должен быть забанен.Неважно, кем был этот пользователь раньше - просто продолжайте свой путь, все должно работать само собой.

С SQL у вас может быть столбец BANNED.UPDATE не волнует, если значение останется прежним, так что просто запустите обновление:

-- this will set BANNED to false. Use 1 to set it to true
UPDATE my_table SET BANNED = 0 WHERE ID = <your id>

Все это говорит о том, что вы можете заставить пользователя выйти из системы и войти снова послеони были запрещены, но это вопрос другого вопроса.

0 голосов
/ 15 августа 2011

Этот тип запроса может вам немного помочь:

UPDATE `my_table` SET banned=(NOT banned) WHERE id = "<your id>"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...