Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

รวมค่าของแถวเดียวใน MySQL?


คุณสามารถใช้ไวยากรณ์ด้านล่างเพื่อรวมค่าของแถวเดียว -

กรณีที่ 1 − ต่อไปนี้คือไวยากรณ์หากคอลัมน์ของคุณไม่มีค่า NULL -

เลือก yourColumnName1+yourColumnName2+yourColumnName3+.......+N เป็น anyVariableName จาก yourTableName

กรณีที่ 2 − หากคอลัมน์ของคุณมีค่า NULL ให้ใช้ไวยากรณ์นี้ -

เลือก IFNULL(yourColumnName1,0)+ IFNULL(yourColumnName2,0)+ IFNULL(yourColumnName3,0)+.............+NAS anyVariableName FROM yourTableName;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง SumValueOfSingleRow -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> FirstValue int, -> SecondValue int, -> ThirdValue int, -> คีย์หลัก (Id) -> ); แบบสอบถามตกลง 0 แถว ได้รับผลกระทบ (0.70 วินาที)

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงใน SumValueOfSingleRow(FirstValue,SecondValue,ThirdValue) ค่า (1,0,1); เคียวรีตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที)mysql> แทรกลงใน SumValueOfSingleRow (FirstValue, SecondValue, ThirdValue) ค่า (1, NULL,0);ตกลง, 1 แถวได้รับผลกระทบ (0.19 วินาที)mysql> แทรกลงใน SumValueOfSingleRow (FirstValue,SecondValue,ThirdValue) ค่า (NULL, NULL, NULL); แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.09 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก SumValueOfSingleRow;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+----+------------+-------------+------------+| รหัส | FirstValue | SecondValue | ThirdValue |+----+-----------+-------------+------------+| 1 | 1 | 0 | 1 || 2 | 1 | NULL | 0 || 3 | NULL | NULL | NULL |+----+-----------+-------------+------------+3 แถว ในชุด (0.00 วินาที)

ดูตัวอย่างผลลัพธ์ หากคุณใช้กรณีที่ 1 คุณจะไม่ได้รับผลลัพธ์ที่เหมาะสม

ให้เราตรวจสอบกรณีที่ 1 ซึ่งเรากล่าวถึงข้างต้น แบบสอบถามมีดังนี้ −

mysql> เลือก FirstValue+SecondValue+ThirdValue เป็น SingleRowSum จาก SumValueOfSingleRow;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+-------------+| SingleRowSum |+--------------+| 2 || NULL || NULL |+-------------+3 แถวในชุด (0.06 วินาที)

ดูผลลัพธ์ตัวอย่าง แบบสอบถามด้านบนไม่จัดการกับกรณี NULL ตอนนี้คุณสามารถใช้กรณีที่ 2 เพื่อให้ได้ผลลัพธ์ที่เหมาะสม

แบบสอบถามมีดังนี้ −

mysql> เลือก ifnull(FirstValue,0)+ ifnull(SecondValue,0)+ ifnull(ThirdValue,0) เป็น SingleRowSum จาก SumValueOfSingleRow;

ต่อไปนี้เป็นผลลัพธ์ที่แสดงผลรวมของค่าของแถวเดียว -

<ก่อนหน้า>+-------------+| SingleRowSum |+--------------+| 2 || 1 || 0 |+--------------+3 แถวในชุด (0.06 วินาที)