2016-10-31 25 views
1

返される行数が1以上の場合は値1を返し、何も見つからない場合は0を返します。Select MySql Case Query

私はそれがFALSE

SELECT count(*) >= 1 
from account 
where account_id = 12 

答えて

0

単純なクエリの下にリストされた上で構文エラーを取得していますクエリで真のときに単語が欠けていた

あなたが誤って0と12を比較するよう
0

私を考え出しであれば条件はTRUE0であればMySQLは1を返し

SELECT CASE (select count(*) from account where account_id = 12 >0) then 1 else 0 end; 
0

この

SELECT CASE (select count(*) from .account where account_id = 12 >0) when true then 1 else 0 end; 

だけ文法的にこれは確かに改善され、動作します。しかし

SELECT CASE ((select count(*) from .account where account_id = 12) > 0) when true then 1 else 0 end; 

、なぜあなたはすべてのレコードをカウントする必要があります、ときあなたは存在をテストすることができます:

SELECT CASE (exists (select 1 from .account where account_id = 12)) when true then 1 else 0 end; 

この最後の行は、存在する場合は最初の行を見つけますそうであれば1を返し、そうでなければ0を返します。