MySqlClient访问tinyint字段返回布尔值

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 原文 MySqlClient访问tinyint字段返回布尔值 症状: 使用MySqlClient访问tinyint       unsign 字段返回布尔值 true 和        false,但是实际上该字段存储值为1-255 分析: 由于在Mysql中没有布尔类型值,MySqlClient在访问tinyint类型字段时默认作为布尔值使用。

原文 MySqlClient访问tinyint字段返回布尔值

症状:

使用MySqlClient访问tinyint       unsign 字段返回布尔值 true 和        false,但是实际上该字段存储值为1-255
分析:

由于在Mysql中没有布尔类型值,MySqlClient在访问tinyint类型字段时默认作为布尔值使用。

解决:

1.在连接串中增加        Treat Tiny As Boolean=false        配置.

2.对应字段在SQL语句中*1,这样,读取出的字段值默认会被转换成int类型.

相关资料:

  根据官方文档        10.1.1. Overview of Numeric Types ,在 MySql 中还没有严格的 bool 类型,但使用 TINYINT(1)        隐式用作 bool 类型,零作为false,而非零值(包括负数)作为true。但,这是不对称的。在执行逻辑比较时,true 等于 1,false        等于 0,但 true 不等于 2。这个文档显示的 MySql 5.0,其他后续版本是否有严格的 bool 类型未知。

在 MySql       Connector/Net 中,遵循了上面这个约定,假如某个字段类型是 tinyint(1),则会被自动映射成 Boolean        类型。如果要禁用这个映射,可以在连接字符串中,配置 Treat Tiny As Boolean=false。这个选项的默认值是 true。参考        21.2.6. Connector/NET Connection String Options Reference 。没有查到这个选项从        Connector/Net 哪个版本开始支持,应该是 Connector/Net 5.x 之后都支持。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
8月前
|
Java 数据库连接 mybatis
mybatis返回map类型数据空值字段不显示(三种解决方法)
mybatis返回map类型数据空值字段不显示(三种解决方法)
|
12月前
|
JSON 关系型数据库 MySQL
MySQL:json字段查询:数组、对象、成员检查
MySQL:json字段查询:数组、对象、成员检查
582 0
|
SQL Oracle 关系型数据库
oracle中使用sql查询时字段为空 赋值默认值 ( 通过 nvl( )函数 )
oracle中使用sql查询时字段为空 赋值默认值 ( 通过 nvl( )函数 )
468 0
oracle中使用sql查询时字段为空 赋值默认值 ( 通过 nvl( )函数 )
|
SQL 关系型数据库 MySQL
MySql 使用 NOT IN 返回值包含null值,返回数据不全
MySql 使用 NOT IN 返回值包含null值,返回数据不全
212 0
MySql 使用 NOT IN 返回值包含null值,返回数据不全
|
Java 数据库连接 mybatis
metaObject.hasSetter在updayeFill的时候把实体类中没有这个字段的值也返回了true
metaObject.hasSetter在updayeFill的时候把实体类中没有这个字段的值也返回了true
121 0
|
关系型数据库 MySQL 索引
Mysql 唯一索引的字段值 允许多个NULL值存在吗
Mysql 唯一索引的字段值 允许多个NULL值存在吗
463 0
Mysql 唯一索引的字段值 允许多个NULL值存在吗
|
SQL 关系型数据库 MySQL
你还不知道mysql中空值和null值的区别吗?
你还不知道mysql中空值和null值的区别吗?
161 0
|
关系型数据库 MySQL
mysql 字段判断是否包含某个字符串
• 整体数据 • 查询support_goods_level中包含1或者2的数据 • FIND_IN_SET(str,strlist) • 查询结果 • LOCATE(substr,str) • 查询结果 • 非期望情况 • POSITION(substr IN str) • 查询结果 • 非期望情况 • INSTR(str,substr) • 查询结果 • 非期望情况
mysql 字段判断是否包含某个字符串
|
Go
mssql sqlserver 将字段null(空值)值替换为指定值的三种方法分享
原文:mssql sqlserver 将字段null(空值)值替换为指定值的三种方法分享 摘要: 下文将分享三种将字段中null值替换为指定值的方法分享,如下所示: 实验环境:sqlserver 2008 R2 create table test(keyId int identity,...
1410 0