2013-05-01 4 views
5

カウントが0より大きいかどうかを示すselect文の列に真偽値を取得しようとしています。 MySQL SELECT COUNT> 0をブール値として

は、私は、これらのドキュメント読み: http://dev.mysql.com/doc/refman/5.1/en/expressions.html

私は完全には理解していないが、彼らは私が私の表現で「>>」を使うことができ示すように見えました。

は、だから私はこの試みた:それは実行され、エラーや警告を生成doesntの

SELECT COUNT(*)>>0 AS my_bool FROM table GROUP BY id; 

を、しかしmy_bool列はちょうどCOUNT(*)の結果が含まれています。 私は何をしようとしているのですか?

PSはい私は結果を処理するコードでx> yをテストすることができますが、MySQL単独で行うことができるかどうかを知りたいと思います。すべて手段)

答えて

16

例では、greater than演算子は使用していませんが、bit shift (>>)です。使用する場合

SELECT COUNT(*) > 0 AS my_bool FROM table GROUP BY id; 

my_boolはブール値として0または1を含みます。

+0

doh!うん、今、顔パーム。私はそれを試して覚えている、それは働いていない、それは私が最初にしようとしなかった理由です:Sは、私ができるように受け入れる:)感謝 – jammypeach

1

は、以下のことを試してみてください。

SELECT (COUNT(*) <> 0) AS my_bool 
FROM table 
GROUP BY id; 
4

をチェックして、真/偽を返すかの条件を使用してください。

例:

SELECT if(COUNT(*)>0,'true','false') AS my_bool FROM table GROUP BY id; 

の場合は、カウント値が0より大きい場合、その後falseを返す他にtrueを返すことを確認します。

+0

私はこの答えが最高です – newUserNameHere

+0

@newUserNameHeありがとう、 –

1

私はジーンの答えは良い方で、あなたもこれを行うには、サブクエリを使用できると思いますが:

SELECT (
    SELECT COUNT(*) AS my_bool FROM table GROUP BY id 
) != 0; 

COUNT(*)がゼロの場合、クエリは0を返し、そうでない場合は1

1

あなたは可能性がありこれを行う -

SET @countValue = (SELECT COUNT(*) FROM table GROUP BY id); 
if @countValue > 0 
    return 1; 
else 
    return 0; 
関連する問題