MySQL การใช้งานฟังก์ชัน LEAST()

ฟังก์ชัน LEAST() ใน MySQL ใช้สำหรับเปรียบเทียบค่าหลายค่า แล้วคืนค่าที่ “น้อยที่สุด” (least) ในบรรดาค่าที่ระบุ ใช้ได้กับ ตัวเลข, ข้อความ (string), วันที่ หรือค่าประเภทอื่นที่เปรียบเทียบกันได้

ประโยชน์ของฟังก์ชัน LEAST()

  • ใช้หาค่าที่น้อยที่สุดในแถวเดียวกัน เช่น
    • ราคาต่ำสุดจากหลายคอลัมน์
    • คะแนนที่ต่ำสุดในแต่ละวิชา
    • วันที่ที่เร็วที่สุด
  • ช่วยให้โค้ดอ่านง่ายและกระชับกว่าการใช้ IF() หลาย ๆ ชั้น

รูปแบบการใช้งาน

LEAST(expr1, expr2, ..., exprN)
  • expr1, expr2, ..., exprN คือค่าที่ต้องการเปรียบเทียบ อย่างน้อยต้องมี 2 ค่า
  • ถ้าค่าใดค่าหนึ่งเป็น NULL ผลลัพธ์จะเป็น NULL ทั้งหมด

ตัวอย่างการใช้งาน

เปรียบเทียบตัวเลข

SQL
SELECT LEAST(10, 5, 20);       -- ผลลัพธ์: 5
SELECT LEAST(-3, -7, -1);      -- ผลลัพธ์: -7

เปรียบเทียบข้อความ (ตามลำดับอักขระ)

SQL
SELECT LEAST('apple', 'banana', 'orange');  
-- ผลลัพธ์: 'apple'
  • เปรียบเทียบตามลำดับตัวอักษร (ASCII หรือ Unicode)

เปรียบเทียบวันที่

SQL
SELECT LEAST('2023-01-01', '2024-05-01', '2022-12-31');  
-- ผลลัพธ์: '2022-12-31'

เปรียบเทียบวันที่ในแต่ละแถว เพื่อหาวันที่แรกสุดระหว่าง rental_date กับ return_date

SQL
SELECT rental_id,
       rental_date,
       return_date,
       LEAST(rental_date, return_date) AS first_activity
FROM rental
LIMIT 5;

ถ้ามีค่า NULL ในชุดข้อมูลที่นำมาเปรียบเทียบ LEAST() จะคืนค่า NULL

SQL
SELECT LEAST(10, NULL, 5);     -- ผลลัพธ์: NULL

วิธีป้องกัน

SQL
SELECT LEAST(IFNULL(a, 0), IFNULL(b, 0), IFNULL(c, 0));
แชร์เรื่องนี้