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

หาค่าต่ำสุดจากหลายคอลัมน์ใน MySQL ด้วย LEAST()

บทความนี้สาธิตการใช้ฟังก์ชัน LEAST() เพื่อหาค่าต่ำสุด (Minimum) จากหลายคอลัมน์ในแต่ละแถว (Row-wise Minimum)

สร้างตารางและข้อมูลทดสอบ

mysql> CREATE TABLE DemoTable756(
    Value1 INT, Value2 INT, Value3 INT
);
Query OK, 0 rows affected (0.62 sec)

mysql> INSERT INTO DemoTable756 VALUES(10, 20, 14);
mysql> INSERT INTO DemoTable756 VALUES(20, 34, 17);
mysql> INSERT INTO DemoTable756 VALUES(200, 134, 789);
mysql> INSERT INTO DemoTable756 VALUES(139, 98, 99);

คิวรีหาค่าต่ำสุดของแต่ละแถว

mysql> SELECT LEAST(Value1, Value2, Value3) FROM DemoTable756;

ผลลัพธ์

+-----------------------------+
| least(Value1,Value2,Value3) |
+-----------------------------+
| 10                          |
| 17                          |
| 134                         |
| 98                          |
+-----------------------------+

คำอธิบาย:

  • LEAST(val1, val2, ...) - คืนค่าที่น้อยที่สุดจากรายการ
  • GREATEST(val1, val2, ...) - คู่คู่สำหรับหาค่ามากที่สุด
  • ทำงาน Row-by-Row (ต่อแถว) ไม่ใช่ Column Aggregate
  • หากมีค่า NULL ในรายการ ผลลัพธ์จะเป็น NULL (ยกเว้น MySQL 8.0+ ที่มีการตั้งค่า)
  • รองรับทุกชนิดข้อมูลที่เปรียบเทียบได้ (Number, String, Date)

กรณีต้องการหาค่าต่ำสุดของทั้งคอลัมน์ (Column-wise): ใช้ MIN(Value1), MIN(Value2), MIN(Value3) แทน