我的表格中有一栏名为'授权'.它的默认值为0.当用户被授权时,需要将其更改为1,但必须能够将其重置为0.我知道我可以通过2个查询轻松完成此操作:
$authorised = Db::query('SELECT authorised FROM users WHERE id=2');
$newAuthValue = ($authorised['authorised']) ? 0 : 1;
Db::query('UPDATE users SET authorised=' . $newAuthValue . ' WHERE id=2');
Run Code Online (Sandbox Code Playgroud)
我想知道的是,有一种方法可以用一个查询来做到这一点吗?要反转布尔值?
Ale*_*all 32
UPDATE `users` SET `authorised` = NOT `authorised` WHERE id = 2
Run Code Online (Sandbox Code Playgroud)
此查询也可用于否定该字段,并且更符合布尔语法.
nic*_*ckf 30
UPDATE users SET `authorised` = IF (`authorised`, 0, 1)
Run Code Online (Sandbox Code Playgroud)