我怎么能重置一个标志为假,在一个语句,只有当它是真的&如果它已经成立,就忽略它


How can I reset a flag to false, in just one statement, only if it is true & if its already true just ignore it?

如何在一个语句中将标志重置为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>"
相关文章: