私が知りたいのは、p.amount is null
をcase .. when
に書いた方が良いか、それともWHERE
節に書いていますか?CASE .. WHEN句とWHERE句の条件を設定しますか?
ONE:
select *,
case when p.amount is null then '1'
else (select count(1)
from Money_paid mp
where mp.post_id = p.id and mp.user_id = :user_id limit 1)
end paid
from Posts p
where p.id = :post_id
TWO:
select *,
(select count(1)
from Money_paid mp
where mp.post_id = p.id and
mp.user_id = :user_id and
p.amount is not null
limit 1) paid
from Posts p
where p.id = :post_id
だから、1?
LIMIT 1ですべてを使用する理由? – Quassnoi
何を返そうとしていますか?支払った数または旗?さらに、 'p.amountがnull 'の場合(最初の値は1、2番目の値は0)、戻り値は同じではありません。 –
@GordonLinoffいいえ私は支払った番号を望んでいない、私はちょうどそこに任意の行を確認したいですか? (ただ存在する) – stack