GVKun编程网logo

MySQL tinyint null or != 1

15

对于MySQLtinyintnullor!=1感兴趣的读者,本文将提供您所需要的所有信息,并且为您提供关于MySQL"tinyInt1isBitortinyint(1)"相关问题解析、Mysqlint

对于MySQL tinyint null or != 1感兴趣的读者,本文将提供您所需要的所有信息,并且为您提供关于MySQL "tinyInt1isBit or tinyint(1)" 相关问题解析、Mysql int、bigint、smallint 、tinyint 类型区分详解、Mysql tinyint(1)与tinyint(4)的区别是什么、mysql tinyint(1)vs tinyint(2)vs tinyint(3)vs tinyint(4)[重复]的宝贵知识。

本文目录一览:

MySQL tinyint null or != 1

MySQL tinyint null or != 1

CREATE TABLE `atest` (
  `id` int(11) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  `type` int(255) DEFAULT NULL,
  `stopresult` tinyint(1) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


INSERT INTO `springrain_ql`.`atest` (`id`, `name`, `type`, `stopresult`) VALUES (1, ''a1'', 1, NULL);
INSERT INTO `springrain_ql`.`atest` (`id`, `name`, `type`, `stopresult`) VALUES (2, ''a2'', 1, NULL);
INSERT INTO `springrain_ql`.`atest` (`id`, `name`, `type`, `stopresult`) VALUES (3, ''b1'', 2, NULL);
INSERT INTO `springrain_ql`.`atest` (`id`, `name`, `type`, `stopresult`) VALUES (4, ''a3'', 1, 1);



-- 过滤非 1 记录

SELECT * FROM atest WHERE stopresult IS NULL;
 
SELECT * FROM atest WHERE stopresult != 1;
-- 正确
SELECT * FROM atest WHERE stopresult <> 1 or stopresult IS NULL;

 

MySQL

MySQL "tinyInt1isBit or tinyint(1)" 相关问题解析

问题描述

tinyInt 的数据类型,在JAVA数据类型 和 MySQL的数据类型转换,要注意存储长度为 1 的情况。查询时,该字段对应的Java类型为Boolean

源数据:

读取后数据: 

问题分析

 MySQL官方的JDBC文档定义转换规则如下:

 如果tinyInt1isBit=true(默认),且tinyInt存储长度为1,则转为java.lang.Boolean,否则转为java.lang.Integer。

解决方案

1、避免使用长度为 1 的 tinyint 类型字段存储数字格式的数据,tinyInt(1) 只用来代表Boolean含义的字段。其中 0 代表False,1 代表True。如果要存储多个数值,则定义为tinyInt(N), N>1。例如 tinyInt(2)
2、JDBC的URL增加 tinyInt1isBit=false参数,注意参数名区分大小写,否则不生效。
final private val URL = "jdbc:mysql://localhost:3306/test_db?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&tinyInt1isBit=false&serverTimezone=Asia/Shanghai&useSSL=true"

conn_str="jdbc:mysql://${hostname}/${db_name}?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&tinyInt1isBit=false&serverTimezone=Asia/Shanghai&useSSL=true&dontTrackOpenResources=true&defaultFetchSize=10000&useCursorFetch=true"

 

Amazing MySQL !~~

Mysql int、bigint、smallint 、tinyint 类型区分详解

Mysql int、bigint、smallint 、tinyint 类型区分详解

文章目录

  • MySQL数据类型与Java数据类型
  • 数值类型存储空间与长度
  • 参考链接

MySQL数据类型与Java数据类型

在这里插入图片描述

数值类型存储空间与长度

在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。和数字位数也无关系 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。
如果int的值为10
int(10)显示结果为0000000010
int(3)显示结果为010
就是显示的长度不一样而已,但都是占用4个字节的空间。

在这里插入图片描述

参考链接

mysql中int、bigint、smallint 和 tinyint的区别详细介绍
MySQL数据类型与Java数据类型
MYSQL 官网

Mysql tinyint(1)与tinyint(4)的区别是什么

Mysql tinyint(1)与tinyint(4)的区别是什么

什么是tinyint(M)?

先来了解下mysql中字符串类型varchar(m) 和数值类型tinyint(m) 的区别?
字符串列类型: varchar(m) 而言,m 是字段中可以存储的最大字符长度,也就是说是字段长度。根据设置,当你插入超出字段长度的数据时,你很可能会收到错误提示,即使没有收到错误提示,你插入的数据也会被自动截断以适应该字段的预定义长度。所以,varchar(20) 和 varchar(40) 是不同的,其真实反映了该字段可以存储的数据长度
数值列类型:其长度修饰符表示最大显示宽度,与该字段物理存储没有任何关系。也就是说,tinyint(1) 和 tinyint(4) 能够存储的数值范围都是-128…127 (or for unsigned values 0…255),他们是相同的数据类型,当然他们还是有一点差异,以下会有说明。
对于 tinyint 数据类型,只占 1 个字节

- 无符号的(unsigned),范围是 0 到 255,默认长度是 3。- 有符号的(signed),范围是 -128 到 127,默认长度是 4。

范围算法:tinyint占1个字节,一个字节 8 位,也就是1*8=8,可以表示的数字个数是 2的 8 次方(2^8 = 256个数字)。

区别:若使用了 zerofill,当实际长度达不到指定的显示长度时,就会用 0 在前面补齐。(简记zerofill作用就是补零)

测试

先创建一张测试表,对 tinyint 类型都使用 zerofill。

CREATE TABLE `pre_demo` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT &#39;主键&#39;,
  `unsigned_t` tinyint(3) unsigned zerofill NOT NULL DEFAULT &#39;000&#39;,
  `signed_t` tinyint(4) unsigned zerofill NOT NULL DEFAULT &#39;0000&#39;,
  `t1` tinyint(1) unsigned zerofill NOT NULL DEFAULT &#39;0&#39;,
  `t2` tinyint(2) unsigned zerofill NOT NULL DEFAULT &#39;00&#39;,
  `t3` tinyint(3) unsigned zerofill NOT NULL DEFAULT &#39;000&#39;,
  `t4` tinyint(4) unsigned zerofill NOT NULL DEFAULT &#39;0000&#39;,
  `t5` tinyint(5) unsigned zerofill NOT NULL DEFAULT &#39;00000&#39;,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
登录后复制

然后,插入测试数据。

NSERT INTO pre_demo VALUES(NULL,8,8,8,8,8,8,8);
INSERT INTO pre_demo VALUES(NULL,123,123,123,123,123,123,123);
登录后复制

最后,查询数据表中的数据。

mysql> SELECT * FROM pre_demo;
+----+------------+----------+-----+-----+-----+------+-------+
| id | unsigned_t | signed_t | t1  | t2  | t3  | t4   | t5    |
+----+------------+----------+-----+-----+-----+------+-------+
|  1 |        008 |     0008 |   8 |  08 | 008 | 0008 | 00008 |
|  2 |        123 |     0123 | 123 | 123 | 123 | 0123 | 00123 |
+----+------------+----------+-----+-----+-----+------+-------+
2 rows in set (0.00 sec)
登录后复制
mysql> SELECT *,LENGTH(id),LENGTH(unsigned_t),LENGTH(t1) FROM pre_demo;
+----+------------+----------+-----+-----+-----+------+-------+------------+--------------------+------------+
| id | unsigned_t | signed_t | t1  | t2  | t3  | t4   | t5    | LENGTH(id) | LENGTH(unsigned_t) | LENGTH(t1) |
+----+------------+----------+-----+-----+-----+------+-------+------------+--------------------+------------+
|  1 |        008 |     0008 |   8 |  08 | 008 | 0008 | 00008 |          1 |                  3 |          1 |
|  2 |        123 |     0123 | 123 | 123 | 123 | 0123 | 00123 |          1 |                  3 |          3 |
+----+------------+----------+-----+-----+-----+------+-------+------------+--------------------+------------+
2 rows in set (0.00 sec)
登录后复制

以上就是Mysql tinyint(1)与tinyint(4)的区别是什么的详细内容,更多请关注php中文网其它相关文章!

mysql tinyint(1)vs tinyint(2)vs tinyint(3)vs tinyint(4)[重复]

mysql tinyint(1)vs tinyint(2)vs tinyint(3)vs tinyint(4)[重复]

如何解决mysql tinyint(1)vs tinyint(2)vs tinyint(3)vs tinyint(4)[重复]?

tinyint(M)的范围始终是-128 .. + 127有符号或0..255无符号。M是显示宽度。

M表示整数类型的最大显示宽度。最大显示宽度为255。显示宽度与类型可以包含的值的范围无关,如第11.2节“数字类型”中所述。对于浮点和定点类型,M是可以存储的总位数。

来自http://dev.mysql.com/doc/refman/5.5/en/numeric-type- overview.html

解决方法

这个问题已经在这里有了答案

7年前关闭。

可能重复:
MySql:Tinyint(2)vs
tinyint(1)-哪个不同?

之间有什么区别?

  • TinyINT(1)
  • TinyINT(2)
  • TinyINT(3)
  • TinyINT(4)

今天关于MySQL tinyint null or != 1的介绍到此结束,谢谢您的阅读,有关MySQL "tinyInt1isBit or tinyint(1)" 相关问题解析、Mysql int、bigint、smallint 、tinyint 类型区分详解、Mysql tinyint(1)与tinyint(4)的区别是什么、mysql tinyint(1)vs tinyint(2)vs tinyint(3)vs tinyint(4)[重复]等更多相关知识的信息可以在本站进行查询。

本文标签: