MySQL布尔列未得到更新
给定以下行:MySQL布尔列未得到更新,mysql,sql,mysqli,Mysql,Sql,Mysqli,给定以下行: mysql> select * from user\G *************************** 1. row *************************** id: 1 username: crm password: AAER8]HR6UnR4knR4YnRnN[] accountNonExpired: accountNonLocked: cre
mysql> select * from user\G
*************************** 1. row ***************************
id: 1
username: crm
password: AAER8]HR6UnR4knR4YnRnN[]
accountNonExpired:
accountNonLocked:
credentialsNonExpired:
enabled:
created: 2017-03-12 17:40:25
createdUser: system
lastUpdated: NULL
lastUpdatedUser: NULL
visible:
deleted:
deletedUser: NULL
1 row in set (0.00 sec)
以下命令起作用:
mysql> update user set username = 'test' where id = 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from user\G
*************************** 1. row ***************************
id: 1
username: test
password: AAER8]HR6UnR4knR4YnRnN[]
accountNonExpired:
accountNonLocked:
credentialsNonExpired:
enabled:
created: 2017-03-12 17:40:25
createdUser: system
lastUpdated: NULL
lastUpdatedUser: NULL
visible:
deleted:
deletedUser: NULL
1 row in set (0.00 sec)
但以下更新“可见”列的命令无效:
mysql> update user set visible = true where id = 1;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
mysql> select * from user\G
*************************** 1. row ***************************
id: 1
username: test
password: AAER8]HR6UnR4knR4YnRnN[]
accountNonExpired:
accountNonLocked:
credentialsNonExpired:
enabled:
created: 2017-03-12 17:40:25
createdUser: system
lastUpdated: NULL
lastUpdatedUser: NULL
visible:
deleted:
deletedUser: NULL
1 row in set (0.00 sec)
以下是相关表格:
mysql> show create table user;
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| user | CREATE TABLE `user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(150) NOT NULL,
`accountNonExpired` bit(1) DEFAULT b'1',
`accountNonLocked` bit(1) DEFAULT b'1',
`credentialsNonExpired` bit(1) DEFAULT b'1',
`enabled` bit(1) DEFAULT b'0',
`created` datetime NOT NULL,
`createdUser` varchar(50) NOT NULL,
`lastUpdated` datetime DEFAULT NULL,
`lastUpdatedUser` varchar(50) DEFAULT NULL,
`visible` bit(1) DEFAULT b'0',
`deleted` bit(1) DEFAULT b'0',
`deletedUser` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
以下是Mysql的版本:
mysql> select version();
+-------------------------+
| version() |
+-------------------------+
| 5.7.17-0ubuntu0.16.04.1 |
+-------------------------+
1 row in set (0.00 sec)
为什么我不能更新用户表的布尔列
编辑:以下作品:
mysql> update user set visible = true where id = 1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from user where id = 1\G
*************************** 1. row ***************************
id: 1
username: test
password: AAER8]HR6UnR4knR4YnRnN[]
accountNonExpired:
accountNonLocked:
credentialsNonExpired:
enabled:
created: 2017-03-12 17:40:25
createdUser: system
lastUpdated: NULL
lastUpdatedUser: NULL
visible:
deleted:
deletedUser: NULL
1 row in set (0.00 sec)
但它做到了吗?“visible”的值不存在为真或1的可视表示?请尝试分别将
0
或1
的列更新为false
&true
。列的类型为bit,默认值为0
如果visible中的值已为“TRUE”,则会发生这种情况
当您执行以下操作时会发生什么
如果你输入follow,它就工作了,那么这就是你的答案
大宗报价
update user set visible=false,其中id=1;我要么设置为显式
1
,要么将该值存储为布尔值。