`
一个人旅行
  • 浏览: 91244 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql中没有boolean类型

阅读更多
在mysql中对bool或boolean数据类型这样描述:
BOOL, BOOLEAN
These types are synonyms for TINYINT(1). A value of zero is considered false. Nonzero values are considered true:
mysql> SELECT IF(0, 'true', 'false');
+------------------------+
| IF(0, 'true', 'false') |
+------------------------+
| false                  |
+------------------------+

mysql> SELECT IF(1, 'true', 'false');
+------------------------+
| IF(1, 'true', 'false') |
+------------------------+
| true                   |
+------------------------+

mysql> SELECT IF(2, 'true', 'false');
+------------------------+
| IF(2, 'true', 'false') |
+------------------------+
| true                   |
+------------------------+
However, the values TRUE and FALSE are merely aliases for 1 and 0, respectively, as shown here:

mysql> SELECT IF(0 = FALSE, 'true', 'false');
+--------------------------------+
| IF(0 = FALSE, 'true', 'false') |
+--------------------------------+
| true                           |
+--------------------------------+

mysql> SELECT IF(1 = TRUE, 'true', 'false');
+-------------------------------+
| IF(1 = TRUE, 'true', 'false') |
+-------------------------------+
| true                          |
+-------------------------------+

mysql> SELECT IF(2 = TRUE, 'true', 'false');
+-------------------------------+
| IF(2 = TRUE, 'true', 'false') |
+-------------------------------+
| false                         |
+-------------------------------+

mysql> SELECT IF(2 = FALSE, 'true', 'false');
+--------------------------------+
| IF(2 = FALSE, 'true', 'false') |
+--------------------------------+
| false                          |
+--------------------------------+

对bool或boolean的另外一方面的说明
boolean类型
MYSQL保存BOOLEAN值时用1代表TRUE,0代表FALSE,boolean在MySQL里的类型为tinyint(1),
MySQL里有四个常量:true,false,TRUE,FALSE,它们分别代表1,0,1,0,
mysql> select true,false,TRUE,FALSE;
+------+-------+------+-------+
| TRUE | FALSE | TRUE | FALSE |
+------+-------+------+-------+
|    1 |     0 |    1 |     0 |
+------+-------+------+-------+
可以如下插入boolean值:insert into [xxxx(xx)] values(true),当然也可以values(1);
举例如下:
mysql> alter table test add isOk boolean;
Query OK
mysql> desc test;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| isOk  | tinyint(1)  | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
mysql> insert into test(isOk) values(true);
Query OK
mysql> select isOk from test ;
+------+
| isOk |
+------+
|    1 |
+------+
=================
 MySQL没有boolean类型。这也是比较奇怪的现象。例:
create table xs
(
   id int primary key,
   bl boolean
)
这样是可以创建成功,但查看一下建表后的语句,就会发现,mysql把它替换成tinyint(1)。也就是说mysql把boolean=tinyInt了,但POJO类要定义成什么类型呢?
因为惯性思维,在java类中也把它定义成type。然后在Struts中使用<s:check/>标签。这就产生一个严重的问题了。<s:check>是boolean,而POJO去定义成byte。这样数据永远也无法提交,被struts的intercept拦截掉了。解决办法是在POJO类中定义成boolean,在mysql中定义成tinyint(1)。
 
------
 TINYINT(1) or ENUM( 'true' , 'false')
-------

mysql中if函数的使用
MYSQL 手册中是这么解释的:
IF(expr1,expr2,expr3) 
如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。
分享到:
评论

相关推荐

    Java数据类型和MySql数据类型对应一览

    在本文中,我们将对 Java 数据类型和 MySql 数据类型进行对应一览,帮助开发者更好地理解和使用这两种类型。 字符串类型 在 Java 中,字符串类型对应的是 java.lang.String 类型。在 MySql 中,字符串类型对应的是...

    MySql于Java数据类型对应列表

    本文将详细介绍MySQL中的各种数据类型及其在Java中的对应类型,并解释这些类型的具体含义以及它们在实际应用中的作用。 #### 数据类型对照表解析 ##### 1. VARCHAR (可变长度字符串) **显示长度:** L+N **数据库...

    PostgreSQL与mysql字段对比.docx

    在MySQL中,BOOLEAN类型用于存储逻辑布尔值(true/false/unknown)。 CHAR数据类型:在PostgreSQL中,CHAR类型用于存储固定长度的字符串,用空格填充到长度n。在MySQL中,CHAR类型用于存储固定长度的字符串,用...

    jbpm3.2.2在mysql中字段的类型的错误

    ### jbpm3.2.2在mysql中字段的类型的错误:解决方案与理解 #### 引言 在使用jbpm3.2.2(一个开源的工作流引擎)与MySQL数据库进行集成时,可能会遇到关于字段类型不匹配的问题。这通常发生在初始化数据库结构或...

    java、mysql以及oracle数据类型对照表

    MySQL和Oracle的数据类型则针对存储和操作数据库中的各种数据类型进行了优化。 MySQL的数据类型包括数值类型(如INT、DECIMAL)、字符串类型(如VARCHAR、TEXT)、日期和时间类型(如DATE、TIMESTAMP)以及二进制...

    java_mysql_数据类型对照.doc

    - **BOOLEAN类型**:尽管MySQL中使用TINYINT来表示布尔值,但在Java中使用`java.lang.Boolean`更加直观,特别是在Web开发中,这种映射简化了前端与后端之间的数据交互。 - **整型与浮点型**:选择合适的数据类型对...

    mysql与oracle数据类型对应关系.pdf

    这里我们将深入探讨MySQL与Oracle数据类型之间的对应关系,以及它们在Java编程语言中的映射。 1. MySQL数据类型: - BIGINT:MySQL中用于存储大整数,对应Oracle的NUMBER类型,可以表示非常大的数值。 - BIT:...

    mysql中文帮助文档

    - **表**:数据库中的数据组织形式,由列和行组成,每列代表一个特定数据类型,每行代表一条记录。 - **索引**:提高查询速度的数据结构,可以基于表的一个或多个列创建。 2. **MySQL安装与配置** - 安装MySQL...

    MySql数据类型,非常详细!

    MySQL是一种广泛使用的开源关系型数据库管理系统,其数据类型是数据库设计的基础,理解并熟练掌握MySQL的数据类型对于数据库的高效管理至关重要。以下是对MySQL数据类型的详细阐述。 1. 整数类型: - TINYINT:...

    mysql与oracle数据类型对应关系.docx

    - `YEAR`: 存储年份,Oracle 中没有直接对应的数据类型,通常使用 `DATE`。 2. **Oracle 数据类型** - `NUMBER`: 可以存储整数和浮点数,精度和规模可变,是 Oracle 的通用数字类型。 - `RAW`: 用于存储原始二...

    sql mysql oracle数据类型

    【描述】: "本文将深入探讨 MySQL、Oracle 和 SQL Server 三大主流数据库系统中的数据类型,以及它们与 JDBC 数据类型的对应关系,帮助读者全面理解各数据库的数据类型差异和适用场景。" 在数据库设计中,数据类型...

    康师傅mysql基础pdf

    4. **数据类型**: MySQL支持多种数据类型,如数值(INT, FLOAT, DECIMAL)、字符串(VARCHAR, CHAR)、日期和时间(DATE, TIME, DATETIME)、布尔值(BOOLEAN)等。 5. **索引**: 索引能加速数据查询。主键索引是...

    MySql的用法学习MySql用的,比较合适

    2. 数据类型:理解MySQL中的数据类型,如INT、VARCHAR、DATE、BOOLEAN等,以及它们在不同场景下的适用性。 3. 表结构设计:学习如何创建和设计高效的表结构,包括主键、外键、索引的使用,以及如何进行规范化设计以...

    MYSQL基础复习资料(上)

    mysql支持多种全文本搜索类型,包括BOOLEAN模式、PHRASE模式、EXTENDED模式等。 知识点总结: 1. mysql是一种关系型数据库管理系统,广泛应用于各种web应用程序中。 2. mysql支持多种数据类型,包括整数、字符串、...

    MySQL中文参考手册

    - **导入数据**:可以使用`LOAD DATA INFILE`命令将外部文件中的数据导入到MySQL表中。 - **数据插入**:也可以直接使用`INSERT INTO`语句手动插入数据。例如: ```sql INSERT INTO pet (name, owner, species, ...

    java实体转mysql建表语句

    在Java开发中,将Java实体类转换为MySQL数据库的建表语句是一项常见的任务,它有助于快速构建数据库模型,尤其在使用ORM(对象关系映射)框架如Hibernate、MyBatis时更为便捷。本篇文章将深入探讨这个过程,并提供...

    云平台开发人员MySQL数据库知识手册

    MySQL 数据库中的数据基本类型包括 BIT、TINYINT、BOOL、BOOLEAN 等。BIT 是一个整数类型,TINYINT 是一个很小的整数类型,BOOL 和 BOOLEAN 是布尔类型。 HELP 命令 HELP 命令是 MySQL 数据库中的一个重要命令,...

    MySQL第四讲[数据类型].rar

    在本节MySQL视频教程“第四讲:数据类型”中,我们将深入探讨数据库设计中的关键要素——数据类型。数据类型是数据库管理系统中定义列或变量所允许的值的种类,它决定了数据的存储方式、大小以及可以执行的操作。...

Global site tag (gtag.js) - Google Analytics