Mysql:如何查询类型为bit的列?

Lui*_*ixv 28 mysql select bit

嗨,我正在使用hibernate和Mysql.我有一个名为'active'的布尔属性的类.

生成的数据库表具有BIT数据类型.到现在为止还挺好.我想查询这个值,但我不知道该怎么做.我试过了

 SELECT * from table where active = 1
Run Code Online (Sandbox Code Playgroud)

不起作用,以下都不起作用

 SELECT * from table where active = true
Run Code Online (Sandbox Code Playgroud)

我在参考手册和Stackoveflow中都没有找到任何内容.

任何提示?

提前致谢!

Pet*_*r D 39

SELECT * FROM table WHERE active = (1)
Run Code Online (Sandbox Code Playgroud)


And*_*mar 18

根据这个页面,对于5.0.3之前的版本,BIT是TINYINT(1)的同义词.

你试过这些吗?

SELECT * from table where active = (1)
SELECT * from table where active = 'true'
SELECT * from table where active = b'1'
Run Code Online (Sandbox Code Playgroud)

博客条目建议完全避免使用BIT数据类型.


dfa*_*dfa 7

要指定位值,可以使用b'value'表示法.


Rog*_*oid 7

您是否尝试将其转换为Integer进行比较

SELECT * from table where cast(active as unsigned) = 1
Run Code Online (Sandbox Code Playgroud)

我大部分时间都使用MS SQL,请原谅我,如果这不起作用,因为我无法测试它.


Pac*_*ier 7

实际上MySQL有内置的位文字:

select*from table where active = 0b1
Run Code Online (Sandbox Code Playgroud)