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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-31 21:31:14  来源:igfitidea点击:

How to insert value for bit column of mysql

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  ;

result

结果

回答by devpro

Generally speaking, for booleanor bitdata types, you would use 0 or 1 like that:

一般来说,对于booleanorbit数据类型,您会像这样使用 0 或 1:

INSERT INTO BITTESTTABLE values('XYZ',0);