Computer >> Máy Tính >  >> Lập trình >> MySQL

Tính tổng các giá trị của một hàng trong MySQL?

Bạn có thể sử dụng cú pháp dưới đây để tính tổng các giá trị của một hàng -

Trường hợp 1 - Sau đây là cú pháp nếu cột của bạn không có giá trị NULL -

SELECT yourColumnName1+yourColumnName2+yourColumnName3+.......+N as anyVariableName FROM yourTableName;

Trường hợp 2 - Nếu cột của bạn có giá trị NULL thì hãy sử dụng cú pháp này -

SELECT IFNULL(yourColumnName1,0)+ IFNULL(yourColumnName2,0)+ IFNULL(yourColumnName3,0)+.............+N
AS anyVariableName FROM yourTableName;

Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau -

mysql> create table SumValueOfSingleRow
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> FirstValue int,
   -> SecondValue int,
   -> ThirdValue int,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.70 sec)

Chèn một số bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau -

mysql> insert into SumValueOfSingleRow(FirstValue,SecondValue,ThirdValue) values(1,0,1);
Query OK, 1 row affected (0.11 sec)

mysql> insert into SumValueOfSingleRow(FirstValue,SecondValue,ThirdValue) values(1,NULL,0);
Query OK, 1 row affected (0.19 sec)

mysql> insert into SumValueOfSingleRow(FirstValue,SecondValue,ThirdValue) values(NULL,NULL,NULL);
Query OK, 1 row affected (0.09 sec)

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau -

mysql> select *from SumValueOfSingleRow;

Sau đây là kết quả -

+----+------------+-------------+------------+
| Id | FirstValue | SecondValue | ThirdValue |
+----+------------+-------------+------------+
|  1 |          1 |           0 |          1 |
|  2 |          1 |        NULL |          0 |
|  3 |       NULL |        NULL |       NULL |
+----+------------+-------------+------------+
3 rows in set (0.00 sec)

Nhìn vào đầu ra mẫu. Nếu bạn sử dụng CASE 1, thì bạn sẽ không nhận được kết quả thích hợp.

Hãy để chúng tôi kiểm tra CASE 1, mà chúng tôi đã thảo luận ở trên. Truy vấn như sau -

mysql> select FirstValue+SecondValue+ThirdValue as SingleRowSum from SumValueOfSingleRow;

Sau đây là kết quả -

+--------------+
| SingleRowSum |
+--------------+
|            2 |
|         NULL |
|         NULL |
+--------------+
3 rows in set (0.06 sec)

Nhìn vào đầu ra mẫu, truy vấn trên không xử lý trường hợp NULL. Bây giờ bạn có thể sử dụng CASE 2 để nhận được kết quả thích hợp.

Truy vấn như sau -

mysql> select ifnull(FirstValue,0)+ ifnull(SecondValue,0)+ ifnull(ThirdValue,0) as SingleRowSum from SumValueOfSingleRow;

Sau đây là kết quả hiển thị tổng các giá trị của một hàng -

+--------------+
| SingleRowSum |
+--------------+
|            2 |
|            1 |
|            0 |
+--------------+
3 rows in set (0.06 sec)