bit类型的0是代表true还是false

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bit类型的0是代表true还是false相关的知识,希望对你有一定的参考价值。

SQL的
没有了

参考技术A 一般1是true
0则是false
参考技术B false

我将boolean插入mysql中bit类型,读出来是false和true,但是用false查询用,是空的

读出来没有转化,直接显示false,但是以false为条件查询则查不出来任何东西

boolean 只有true 和 false 而bit在数据库里存的是1和0,页面上是因为从数据库读取到程序的时候,已经把bit转成boolean了,而用sql语句查询,还是在数据库里查的,肯定要用bit支持的1和0才行咯追问

可是我把bit设为64位了,0和1查不出来 navicat for mysql显示的false是0000000000000000000000000110011001100001011011000111001101100101

追答

你的查询语句是怎么写的,你把false当成字符串写成2进制了~那肯定害死那串东西啊

追问

那有什么办法不改动数据库就能查询呢?

追答

不用改动数据库啊,我是想看看你查询的语句是怎么写的~

追问

sql="select * from novel where IsFinished=0"; 查不出来,怎么改

追答

select * from novel where IsFinished='0' 试试加个单引号

参考技术A mysql5.0以后,bit存储的是二进制,设置为1位就是1和0,就是true和false,如果设置大于1位,那就是二进制方式存储 参考技术B 读取bit类型的时候一定要注意转换成数字或者字符串类型,否则会在不同操作系统下得到不同的结果 参考技术C 查询条件使用0和1追问

可是读出来我没转化它就显示false和true,难道页面显示的时候把0和1自己自动转化了

追答

粘贴你的建表表脚本和显示程序,应该没有这么神奇的。

追问

不是,我是把false插入到了长度为64的bit型中,结果是0000000000000000000000000110011001100001011011000111001101100101 这个
在程序中直接取值就成了false了

追答

粘贴你的程序,可能有误会。

追问

能不能把你的QQ给我啊?

以上是关于bit类型的0是代表true还是false的主要内容,如果未能解决你的问题,请参考以下文章

我将boolean插入mysql中bit类型,读出来是false和true,但是用false查询用,是空的

bool的值分别为0,1;那哪个代表true哪个代表false?

null是false还是true

js中各种类型的变量在if条件中是true还是false

关于JavaScript中0空字符串'0'是true还是false的总结

SQL Server bit数据类型