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

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

Linda Hamilton
Linda Hamilton원래의
2025-01-05 05:07:41563검색

How Can I Replace NULL Values with Zeroes in MySQL Queries?

MySQL에서 Null 값 제로화

MySQL에서는 데이터베이스 필드에서 Null 값을 만나는 것이 드문 일이 아닙니다. 이러한 Null 값은 계산을 방해하고 명확하고 정확한 데이터를 표시하기 어렵게 만들 수 있습니다. 이 문제를 해결하기 위해 MySQL은 null 값을 대체하는 대체 값을 지정할 수 있는 IFNULL() 함수를 제공합니다.

다음 시나리오를 고려하십시오.

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

이 쿼리는 순서를 검색합니다. 다양한 테이블의 정보. 그러나 일부 필드에는 null 값이 포함될 수 있습니다. 이러한 필드에 대해 null 대신 0을 반환하려면 다음과 같이 IFNULL()을 사용할 수 있습니다.

SELECT uo.order_id,
       IFNULL(uo.order_total, 0),
       uo.order_status,
       IFNULL(products_subtotal, 0),
       IFNULL(payment_received, 0),
       IFNULL(line_item_subtotal, 0)
       FROM uc_orders uo
       WHERE uo.order_status NOT IN ("future", "canceled")
       AND uo.uid = 4172;

이 수정된 쿼리에서 IFNULL()은 null 값이 발생할 수 있는 모든 필드에 적용됩니다. 필드가 null이 아닌지 확인합니다. 그렇다면 실제 값을 반환합니다. 그렇지 않으면 0을 반환합니다.

이 기술을 사용하면 검색된 모든 필드에 null이 아닌 값이 포함되어 데이터의 일관성이 향상되고 작업하기가 쉬워집니다.

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

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