の一部を無視した場合、特定の列のnullは、その後は、特定の列のnullは、クエリ
が、私は結果を取得したいクエリの一部を無視するかどうかを確認する方法ないかをチェックし、これらの2行が含まれていますが、クエリ以下の場合user_id
行う方法その後、
SELECT
mc.* FROM media_credit mc
LEFT JOIN credit c ON c.id = mc.credit_id
LEFT JOIN "user" u ON u.id = mc.user_id
LEFT JOIN "user" _u ON u.id = c.create_by_user_id
WHERE mc.media_id = $1
c.status = $2
AND u.status = $2 // how to make if mc.user_id is null then dont use this
AND _u.status = $2
テーブル
media_credit
id | media_id | credit_id | username | user_id
1 | 1 | 1 | xx | null
2 | 1 | 1 | null | 1
user
id | status
1 | 0
credit
id | status | create_by_user_id
1 | 0 | 32
感謝を取り除きます?それは 'いつmc.user_idがNULLであるのか'何もしないことを意味しますか?しかし、なぜ入力はパラメータですか? – user1575921
FYI ...私はフェリックスの答えが一番好きです。 $ 2には特別な意味はありません。あなたの元の質問にあった。このトリックは、$ 2 = $ 2または0 = 0または 'x' = 'x'です。したがって、mc.user_idがNULLの場合、AND句は基本的に無視されます。 –