MySql 设置数据类型
MySql SET datatye
我尝试在我的数据库中创建列 table ,并设置数据类型以将数据存储在这个格式“10,2,44”中 我创建了这样的 SET 列 SET('A' , 'B' , 'C')
但是当我尝试向其中插入数据时,我得到了这个响应
错误代码:1265。第 1 行 'setcol' 列的数据被截断
这是我的查询
INSERT INTO `voting`.`questionnaires` (`name`, `cat_id`, `init_date`, `end_date`, `setcol`) VALUES ('sad', '2', '2008-02-02', '2008-02-02', 'A, B');
我应该使用特定格式吗?并且 set 接受重复吗?
要设置您想要的值,您可以存储 3
(不带引号)而不是 'A,B'
。这是因为 SET
字段中的值是以按位方式存储的。因此,集合定义中的每个值对应于二进制数中的 on/off 位。
因此您的陈述将是:
INSERT INTO `voting`.`questionnaires` (`name`, `cat_id`, `init_date`, `end_date`, `setcol`) VALUES ('sad', '2', '2008-02-02', '2008-02-02', 3);
例如,来自 MySQL Documentation:
For a column specified as SET('a','b','c','d'), the members have the
following decimal and binary values.
因此,由于 A
的值为 1
,而 B
的值为 2
,将它们相加得到 3
。或者要设置 C
和 D
,您将存储 12
,等等
出于这个原因,不建议将数字作为 SET
字段的成员(正如您暗示的那样),因为存储 '5'
与存储 [=24] 具有完全不同的含义=].
我尝试在我的数据库中创建列 table ,并设置数据类型以将数据存储在这个格式“10,2,44”中 我创建了这样的 SET 列 SET('A' , 'B' , 'C')
但是当我尝试向其中插入数据时,我得到了这个响应
错误代码:1265。第 1 行 'setcol' 列的数据被截断
这是我的查询
INSERT INTO `voting`.`questionnaires` (`name`, `cat_id`, `init_date`, `end_date`, `setcol`) VALUES ('sad', '2', '2008-02-02', '2008-02-02', 'A, B');
我应该使用特定格式吗?并且 set 接受重复吗?
要设置您想要的值,您可以存储 3
(不带引号)而不是 'A,B'
。这是因为 SET
字段中的值是以按位方式存储的。因此,集合定义中的每个值对应于二进制数中的 on/off 位。
因此您的陈述将是:
INSERT INTO `voting`.`questionnaires` (`name`, `cat_id`, `init_date`, `end_date`, `setcol`) VALUES ('sad', '2', '2008-02-02', '2008-02-02', 3);
例如,来自 MySQL Documentation:
For a column specified as SET('a','b','c','d'), the members have the following decimal and binary values.
因此,由于 A
的值为 1
,而 B
的值为 2
,将它们相加得到 3
。或者要设置 C
和 D
,您将存储 12
,等等
出于这个原因,不建议将数字作为 SET
字段的成员(正如您暗示的那样),因为存储 '5'
与存储 [=24] 具有完全不同的含义=].