MySQL NULLでない場合は1を表示し、そうでない場合は0を表示する 質問する

MySQL NULLでない場合は1を表示し、そうでない場合は0を表示する 質問する

ここでは、表示が少し複雑になっています。私が見落としているだけの IF/ELSE 機能があるはずです。

クエリを実行するテーブルが 2 つあります (顧客、住所)。最初のテーブルにはメイン レコードがありますが、2 番目のテーブルには LEFT JOIN するレコードがある場合とない場合があります。

アドレス テーブルにレコードがない場合は 0 を表示し、レコードが存在する場合は 1 のみを表示したいです。

これまで試みたこと:

SELECT c.name, COALESCE(a.addressid,0) AS addressexists
FROM customers c
LEFT JOIN addresses a ON c.customerid = a.customerid
WHERE customerid = 123

この最初の例ではそれが実行されません。しかし、COALESCE を誤って使用している可能性があります。

null の場合は 0 を、何かが存在する場合は 1 を表示するにはどうすればよいですか?

ベストアンサー1

の代わりにCOALESCE(a.addressid,0) AS addressexists、以下を使用しますCASE:

CASE WHEN a.addressid IS NOT NULL 
       THEN 1
       ELSE 0
END AS addressexists

またはもっとシンプルに:

(a.addressid IS NOT NULL) AS addressexists

これは、MySQL ではTRUEが として表示され、として表示されるため機能します。1FALSE0

おすすめ記事