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

หาค่าสูงสุดจาก 3 คอลัมน์ใน MySQL ด้วย GREATEST()

ใช้ฟังก์ชัน GREATEST() เพื่อหาค่าสูงสุดจากหลายคอลัมน์หรือหลายค่า

ไวยากรณ์

SELECT GREATEST(yourColumnName1, yourColumnName2, yourColumnName3) AS anyAliasName FROM yourTableName;

สร้างตารางตัวอย่าง

mysql> CREATE TABLE MaxOfThreeColumnsDemo (
    -> First INT,
    -> Second INT,
    -> Third INT
    -> );

เพิ่มข้อมูลตัวอย่าง

mysql> INSERT INTO MaxOfThreeColumnsDemo VALUES
(30, 90, 60), (100, 40, 50), (101, 290, 150);

แสดงข้อมูลทั้งหมด

mysql> SELECT * FROM MaxOfThreeColumnsDemo;

ผลลัพธ์:

+-------+--------+-------+
| First | Second | Third |
+-------+--------+-------+
| 30    | 90     | 60    |
| 100   | 40     | 50    |
| 101   | 290    | 150   |
+-------+--------+-------+

หาค่าสูงสุดของ 3 คอลัมน์

mysql> SELECT GREATEST(First, Second, Third) AS MAXValueOfThreeColumns FROM MaxOfThreeColumnsDemo;

ผลลัพธ์:

+------------------------+
| MAXValueOfThreeColumns |
+------------------------+
| 90                     |
| 100                    |
| 290                    |
+------------------------+

ฟังก์ชันคู่คือ LEAST()

SELECT LEAST(First, Second, Third) AS MINValue FROM MaxOfThreeColumnsDemo;

ผลลัพธ์: 30, 40, 101

ข้อสังเกต

  • คืนค่า NULL หาก พารามิเตอร์ใดพารามิเตอร์หนึ่งเป็น NULL
  • ใช้ COALESCE() กัน NULL: GREATEST(COALESCE(a,0), COALESCE(b,0), COALESCE(c,0))
  • รองรับทุกชนิดข้อมูลที่เปรียบเทียบได้ (ตัวเลข, วันที่, สตริง)
  • สำหรับสตริง เปรียบเทียบตาม collication (ลำดับตัวอักษร)

ตัวอย่างกับวันที่

SELECT GREATEST(date1, date2, date3) AS latest_date FROM events;

ตัวอย่างกับสตริง

SELECT GREATEST('apple', 'banana', 'cherry') AS max_str; -- 'cherry'