MySQL中是否有一种方法可以通过单个查询来反转布尔字段?
是的,您可以使用if()MySQL中的函数来反转布尔字段。语法如下-
UPDATE yourTableName SET yourBooleanColumnName = IF(yourBooleanColumnName,0,1);
为了理解上述语法,让我们创建一个表。创建表的查询如下-
mysql> create table ReverseBooleanField -> ( -> Id int NOT NULL AUTO_INCREMENT, -> isValid BOOLEAN -> , -> PRIMARY KEY(Id) -> );
现在,您可以使用insert命令在表中插入一些记录。查询如下-
mysql> insert into ReverseBooleanField(isValid) values(true); mysql> insert into ReverseBooleanField(isValid) values(false); mysql> insert into ReverseBooleanField(isValid) values(true); mysql> insert into ReverseBooleanField(isValid) values(true); mysql> insert into ReverseBooleanField(isValid) values(false);
使用select语句显示表中的所有记录。查询如下-
mysql> select *from ReverseBooleanField;
以下是输出-
+----+---------+ | Id | isValid | +----+---------+ | 1 | 1 | | 2 | 0 | | 3 | 1 | | 4 | 1 | | 5 | 0 | +----+---------+ 5 rows in set (0.00 sec)
MySQL内部将BOOLEAN转换为TINYINT(1),将true设置为1,将false设置为0。
现在,让我们在单个查询中反转布尔字段-
mysql> update ReverseBooleanField set isValid = if(isValid,0,1); Rows matched − 5 Changed − 5 Warnings − 0
使用select语句检查布尔字段是否反转。查询如下-
mysql> select *from ReverseBooleanField;
以下是输出-
+----+---------+ | Id | isValid | +----+---------+ | 1 | 0 | | 2 | 1 | | 3 | 0 | | 4 | 0 | | 5 | 1 | +----+---------+ 5 rows in set (0.00 sec)
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下