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
,要么将该值存储为
布尔值。