30

こんにちは私はhibernateとMysqlを使用しています。'active'というブール属性を持つクラスがあります。

生成されたデータベーステーブルのデータ型はBITです。ここまでは順調ですね。この値を照会したいのですが、その方法がわかりません。私はもう試した

 SELECT * from table where active = 1

動作しません、次も動作しません

 SELECT * from table where active = true

リファレンスマニュアルにもStackoveflowにも何も見つかりませんでした。

ヒントはありますか?

前もって感謝します!

4

6 に答える 6

40
SELECT * FROM table WHERE active = (1)
于 2009-05-08T12:36:48.493 に答える
20

このページによると、BITは5.0.3より前のバージョンのTINYINT(1)の同義語です。

これらを試しましたか?

SELECT * from table where active = (1)
SELECT * from table where active = 'true'
SELECT * from table where active = b'1'

このブログエントリは、BITデータ型を完全に回避することを提案しています。

于 2009-05-08T12:40:00.203 に答える
7

ビット値を指定するには、b'value'表記を使用できます。

于 2009-05-08T12:38:10.003 に答える
7

実際、MySQL には組み込みのビット リテラルがあります。

select*from table where active = 0b1
于 2012-07-11T17:01:10.697 に答える
6

比較のために整数にキャストしてみましたか

SELECT * from table where cast(active as unsigned) = 1

私はほとんどの場合MSSQLを使用しているので、テストできないため、これが機能しない場合はご容赦ください。

于 2009-05-08T12:44:06.713 に答える