SQLステートメントのフィールドがnull、0である場合、MySQLデータベースが代わりに使用されるの

1.背景

書面でのSQLクエリステートメント、およびフィールドがnullの場合、あなたの代わりに0を使用します。

2.ソリューション

CASEフィールドであるNOT NULL THEN ELSE 0 END値
または
別名としてIFNULL(フィールド、0)(省略可能)

3.例

別名としてIFNULL(フィールド、0)(省略可能)


    SELECT pdme.tuid,pdme.role_id,pupv.nickname,pupv.photo_link,pdm.member_role,pdme.status,(IFNULL(pdmam.tuid,0)) armyTuid
    FROM pm_donation_match_enroll pdme 
    LEFT JOIN pm_donation_member pdm
    ON (pdme.donation_id = pdm.donation_id
    AND pdme.role_id = pdm.member_id)
    LEFT JOIN pm_user_profile_view pupv
    ON pdme.role_id = pupv.role_id
		LEFT JOIN pm_donation_match_army_member pdmam
		ON pdme.role_id = pdmam.play_id
    WHERE
    pdme.donation_id = 221 
    AND pdme.donation_match_id = 686
    AND pdme.status IN (1,2)
    AND pdm.delete_flag = 0

フィールドの値がTHEN ELSE 0 END NULLでない場合


    SELECT pdme.tuid,pdme.role_id,pupv.nickname,pupv.photo_link,pdm.member_role,pdme.status,(CASE WHEN pdmam.tuid IS NOT NULL THEN pdmam.tuid ELSE 0 END) armyTuid
    FROM pm_donation_match_enroll pdme 
    LEFT JOIN pm_donation_member pdm
    ON (pdme.donation_id = pdm.donation_id
    AND pdme.role_id = pdm.member_id)
    LEFT JOIN pm_user_profile_view pupv
    ON pdme.role_id = pupv.role_id
		LEFT JOIN pm_donation_match_army_member pdmam
		ON pdme.role_id = pdmam.play_id
    WHERE
    pdme.donation_id = 221 
    AND pdme.donation_match_id = 686 
    AND pdme.status IN (1,2) 
    AND pdm.delete_flag = 0 

4.完璧なソリューション

あなたがより良い方法を持っている場合は、小さなパートナーは、ああ、私にメッセージをお願いします!

公開された27元の記事 ウォンの賞賛5 ビュー648

おすすめ

転載: blog.csdn.net/qq_37967304/article/details/104359956