在mysql中如果存诸一种只有两种答应的数据,设置它的数据类型时,我们首先会想到bit ,它所占字符少,速度快,真的爽的不得了!当这数据插入这种数据类型中时,数值1会变所一个图标(像笑脸,用mysql客户端查看可观察到),而0会变所空白(估计忽略了),mysql但仍然是认识它们,所以在mysql下用sql查询没有任何问题,当是php并不公认识它,如果在页面中用取出的数据值与1 或0比较,结果会是false!
1在页面中输出显示为 'r', 而0为空白!
用ord()来测试可以得到它们的不同,
bit 类型1 ord() 为: 1 //'r'的acsii码
bit 类型0 ord() 为: 0
不知道各位还有什么办法没,知道多一点更好!
另:为什么mysql会将bit 类型存储成这样?mssql不会发生该类变化!
mysql bit 类型!你有什么更好的方法呢?
用bit处理比较麻烦,查询的时候想当做整形处理可以这样
SELECT CAST(`myBitField` AS signed) FROM test
这样在php里就可以与整形数比较了.
SELECT CAST(`myBitField` AS signed) FROM test
这样在php里就可以与整形数比较了.