mysql bit类型查不出,关于select:Mysql:如何查询类型为bit的列?

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

生成的数据库表具有BIT数据类型。 到现在为止还挺好。

我想查询这个值,但我不知道该怎么做。

我试过了

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

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

任何提示?

提前致谢!

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

你试过这些吗?

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

第一个和第三个条目是coorect而第二个不起作用,至少在我的Mysql安装下。 不管怎么说,还是要谢谢你。

@Andomar不同意避免BIT数据类型。 缺点是与旧版本的互操作性,假设您不需要它,BIT实际上更紧凑地存储数据,从而节省存储空间。

@Pacerier我没看到BIT如何节省存储空间。 TINYINT(1)UNSIGNED 1字节和BIT(1)1字节。 请参阅dev.mysql.com/doc/refman/8.0/en/storage-requirements.html(与5.7相同)

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

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

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

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

真正。 我找不到用户手册。

@Luixv - dev.mysql.com/doc/refman/5.5/en/bit-type.html

@Alvaro:这个问题已经快四年了!

@Luixv - 好的,dev.mysql.com/doc/refman/5.0/en/bit-type.html然后;-)

那么,对于比较和更新,0和1适用于我:

这是一个类型为bit(1)的字段,一行,该字段当前为false:

mysql> select isfeatured from nodes where isfeatured = 1;

Empty set (0.00 sec)

mysql> select isfeatured from nodes where isfeatured = 0;

+------------+

| isfeatured |

+------------+

|            |

+------------+

1 row in set (0.00 sec)

在isfeatured中更新0到1更改,类型为bit(1)...

mysql> update nodes set isfeatured=1 where isfeatured = 0;

Query OK, 1 row affected (0.05 sec)

Rows matched: 1  Changed: 1  Warnings: 0

一行改变了......再试一次:

mysql> update nodes set isfeatured=1 where isfeatured = 0;

Query OK, 0 rows affected (0.00 sec)

Rows matched: 0  Changed: 0  Warnings: 0

没有按预期更改行。

与以前相同的选择查询:

mysql> select isfeatured from nodes where isfeatured = 1;

+------------+

| isfeatured |

+------------+

|           |

+------------+

1 row in set (0.00 sec)

mysql> select isfeatured from nodes where isfeatured = 0;

Empty set (0.01 sec)

看,它有效。

我正在使用:

mysql Ver 14.14 Distrib 5.5.31,对于使用readline 6.2的debian-linux-gnu(x86_64)

/ usr / sbin / mysqld Ver 5.5.31-0 + wheezy1 for debian-linux-gnu on x86_64((Debian))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值