>데이터 베이스 >MySQL 튜토리얼 >MySQL 쿼리에서 NULL 필드를 0으로 어떻게 바꿀 수 있습니까?

MySQL 쿼리에서 NULL 필드를 0으로 어떻게 바꿀 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-04 16:33:46261검색

How Can I Replace NULL Fields with Zeros in MySQL Queries?

MySQL에서 Null 필드를 0으로 설정

MySQL에서는 Null 값을 처리하는 것이 어려울 수 있습니다. 데이터를 쿼리할 때 null 필드 대신 null이 아닌 값을 반환하는 것이 유용할 수 있습니다. 이는 null 값이 계산을 왜곡하거나 결과의 가독성에 영향을 미칠 수 있는 경우 특히 그렇습니다.

null 필드를 0으로 설정하려면 IFNULL() 함수를 사용할 수 있습니다. IFNULL()은 평가할 표현식과 표현식이 null인 경우 반환할 값이라는 두 가지 인수를 사용합니다. 예:

IFNULL(expr1, 0)

expr1이 null이 아닌 경우 IFNULL()은 expr1을 반환합니다. 그렇지 않으면 0을 반환합니다. 이를 통해 null 값을 0과 같은 지정된 값으로 쉽게 바꿀 수 있습니다.

제공된 쿼리에서 IFNULL()을 사용하여 products_subtotal, Payment_received의 null 값을 처리할 수 있습니다. 및 line_item_subtotal 필드입니다. 다음은 수정된 쿼리입니다.

SELECT uo.order_id, uo.order_total, uo.order_status,
            IFNULL((SELECT SUM(uop.price * uop.qty) 
             FROM uc_order_products uop 
             WHERE uo.order_id = uop.order_id
            ), 0) AS products_subtotal,
            IFNULL((SELECT SUM(upr.amount) 
             FROM uc_payment_receipts upr 
             WHERE uo.order_id = upr.order_id
            ), 0) AS payment_received,
            IFNULL((SELECT SUM(uoli.amount) 
             FROM uc_order_line_items uoli 
             WHERE uo.order_id = uoli.order_id
            ), 0) AS line_item_subtotal
            FROM uc_orders uo
            WHERE uo.order_status NOT IN ("future", "canceled")
            AND uo.uid = 4172;

IFNULL()을 통합하면 쿼리는 이제 지정된 필드의 null 값에 대해 0을 반환하므로 결과가 일관되고 해석하기 쉽습니다.

위 내용은 MySQL 쿼리에서 NULL 필드를 0으로 어떻게 바꿀 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.