MySQL 如何为mysql的位列插入值
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/34555313/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to insert value for bit column of mysql
提问by SrinivasDJ
I want to insert the value into a bit type column in MySQL. But I am getting a data truncation error.
我想将该值插入到 MySQL 中的位类型列中。但我收到数据截断错误。
CREATE TABLE `BITTESTTABLE` (
`db_field` varchar(50) NOT NULL,
`is_editable` bit(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
If I am inserting a row with
如果我插入一行
INSERT INTO BITTESTTABLE values('XYZ','0')
INSERT INTO BITTESTTABLE values('XYZ','0')
I am getting
我正进入(状态
Data too long for column 'is_editable' at row 1
第 1 行“is_editable”列的数据太长
So how do I insert the data for bit type column?
那么如何插入位类型列的数据呢?
回答by Kevin
You should use:
你应该使用:
INSERT INTO `BITTESTTABLE` VALUES('XYZ', b'0');
回答by Ahmed Khan
Since bit is a number not a string you need enter it like
由于位是数字而不是字符串,因此您需要输入它
INSERT INTO BITTESTTABLE values('XYZ',0)
回答by Piyush Gupta
You need to insert data in bit format like this INSERT INTO BITTESTTABLE values('XYZ',0);
.you are doing values('XYZ','0')
so it is taking as string value.
你需要像这样以位格式插入数据。INSERT INTO BITTESTTABLE values('XYZ',0);
你这样做values('XYZ','0')
是因为它作为字符串值。
回答by houssam
You can use true/false directly; BUT I am not sure if this is related to MySQL itself or to InnoDB : EXAMPLE:
可以直接使用true/false;但我不确定这是否与 MySQL 本身或 InnoDB 相关:示例:
INSERT INTO BITTESTTABLE values('XYZ',false);
INSERT INTO BITTESTTABLE values('XYZ',true);
To be sure try to run:
确保尝试运行:
SELECT TRUE , FALSE ;
回答by devpro
Generally speaking, for boolean
or bit
data types, you would use 0 or 1 like that:
一般来说,对于boolean
orbit
数据类型,您会像这样使用 0 或 1:
INSERT INTO BITTESTTABLE values('XYZ',0);