如何在一个语句中将标志重置为false,仅当它为真&如果已经是真的就忽略它?我也想做相反的事。这里有一种情况,我想禁止一个用户,如果他/她是活跃的,如果他/她已经被禁止了,我不想做任何事情。我也想解除封禁用户,如果他/她被禁止,但不想做任何事情,如果他/她已经是活跃的。这可以用一句话概括吗?
不,这必须是两个语句(一个将用户设置为禁止,另一个将用户设置为未禁止),但它不必复杂。
假设你有一个标志"$ prohibited",如果你想要禁止这个用户,你可以简单地将其设置为true
,如果用户不应该被禁止,你可以将其设置为false
。这个用户之前是什么并不重要——只要继续你的方式,一切都会很好地解决。
使用SQL,您可能有一个BANNED
列。UPDATE
不会关心值是否保持不变,所以只需运行update:
-- this will set BANNED to false. Use 1 to set it to true
UPDATE my_table SET BANNED = 0 WHERE ID = <your id>
说了这么多,你可能想强迫用户注销并在他们被禁止后重新登录,但这是另一个问题。
这种查询可能会对您有所帮助:
UPDATE `my_table` SET banned=(NOT banned) WHERE id = "<your id>"