sqlserver数据库中的字段是bit类型的,数据库中查询查询出来的值为啥是true,o查询不出来
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver数据库中的字段是bit类型的,数据库中查询查询出来的值为啥是true,o查询不出来相关的知识,希望对你有一定的参考价值。
sqlserver数据库中的字段是bit类型的,数据库中查询出来是0或者1,为什么java项目中mybatis查询出来的值会是true?而且0的数据都没查出来,请大神教教怎么改进,急等
参考技术A 观念:一、在编程的领域,true 跟 1 或「真」同义;false 跟 0 或「假」同义。数据库查出结果为 0 或 1,是数据库本身的效果。
二、数据库的 bit 资料型别本身就是存放布林值,不是「真」就是「假」,在编程语言里的相应型别通常也会是 true 或 false。不过有些比较不严谨的编程语言, true 或 false 一般会用 1 或 0 来代表。
三、改进的方式,就是瞭解上述观念之後,找出你编程语言中等效的比较方式即可。也就是你要知道数据库的 true 或 false,跟你所用编程语言的哪种资料型别等效。
四、从你提供的线索「mybatis 查出来的值是 true」,那很显然两边都可以用 true 或 false 来当做判断的依据。追问
主要是,比如我查的这条sql语句,查出来的这个字段的值有1和0同事存在的话,0的那些数据都没查出来,只查出来1的值,当然出来的效果就是开始提问的true了,如果不管是0还是1的数据都没查出来还能好办,可是不知道什么原因,数据库查询出来的都没有任何问题,项目上只查出true的值,false的数据查不出来,好忧伤,麻烦大神再帮帮忙解答,谢谢啦。
追答首先要知道:资料型别为 bit 的,不可能出现「同一笔资料的同一个字段同时在存在两种结果」的情况。
你的叙述,看起只是单纯的资料筛选和 java 端的判断不匹配。
建议:
1、把 java 端的代码贴出来
2、附上你的资料结构
3、数据库端的 sql 语句也贴出来
4、说明你想要达成什麼效果
sqlserver bit 让他默认false
使用bit类型吗?
我就是用true 或者 false
0表示false,1表示true.
如果你是在.net 平台上开发应用程序,.net可以自动将sql server 的bit类型转换成bool 类型。 参考技术B 使用bit是可以的,也有使用其他方式的,比如char(1)。
以上是关于sqlserver数据库中的字段是bit类型的,数据库中查询查询出来的值为啥是true,o查询不出来的主要内容,如果未能解决你的问题,请参考以下文章
sqlserver的bit类型在oracle中可以用啥类型表示
SQL Server 2012 如何将列的数据类型从位更改为日期字段?