การหาค่าที่มากที่สุดระหว่างสองคอลัมน์ใน MySQL
ใช้ฟังก์ชัน GREATEST() ซึ่งคืนค่าที่มากที่สุดจากรายการค่าที่ให้มา (รองรับ 2 ค่าขึ้นไป)
SELECT GREATEST(yourColumnName1, yourColumnName2) AS alias_name FROM yourTableName;
ตัวอย่างการใช้งาน
สร้างตารางและเพิ่มข้อมูล:
mysql> create table DemoTable (
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
Number1 int,
Number2 int
);
mysql> insert into DemoTable(Number1,Number2) values(1000,10000);
mysql> insert into DemoTable(Number1,Number2) values(600,900);
mysql> insert into DemoTable(Number1,Number2) values(12,9);
mysql> insert into DemoTable(Number1,Number2) values(19,56);
ข้อมูลต้นฉบับ:
+----+---------+---------+ | Id | Number1 | Number2 | +----+---------+---------+ | 1 | 1000 | 10000 | | 2 | 600 | 900 | | 3 | 12 | 9 | | 4 | 19 | 56 | +----+---------+---------+
คิวรีหาค่าสูงสุดของแต่ละแถว:
mysql> select greatest(Number1,Number2) AS MAXIMUM_NUMBER_OF_TWO_COLUMNS from DemoTable;
+-------------------------------+ | MAXIMUM_NUMBER_OF_TWO_COLUMNS | +-------------------------------+ | 10000 | | 900 | | 12 | | 56 | +-------------------------------+
ฟังก์ชันคู่: LEAST() - หาค่าน้อยที่สุด
SELECT LEAST(Number1, Number2) FROM DemoTable;
พฤติกรรมกับ NULL: หากอาร์กิวเมนต์ใดเป็น NULL → ผลลัพธ์เป็น NULL | ใช้ COALESCE(col, 0) หรือ IFNULL(col, 0) หากต้องการจัดการ NULL