Function MIN() และ MAX() เป็น function ในการเปรียบเทียบ มันจะคืนค่าเป็นตัวเลขที่มีค่าต่ำสุดและค่าสูงสุด เช่น ถ้าเราต้องการหาจำนวนประชากรต่ำสุด และจำนวนประชากรสูงสุดจะต้องใช้คำสั่งดังนี้
SELECT MIN(Population), MAX(Population) FROM Country;
| MIN(Population) | MAX(Population) |
|---|---|
| 0 | 1277558000 |
เราสามารถใช้ ฟังก์ชัน สองตัวนี้กับข้อมูลชนิดอื่น ๆ ก็ได้ เช่น การหาค่าต่ำสุดและสูงสุดของข้อมูลชนิด String
SELECT MIN(Name), MAX(Name) FROM Country;
| MIN(Name) | MAX(Name) |
|---|---|
| Afghanistan | Zimbabwe |
ในกรณีที่ field นั้น ๆ เป็นชนิด string การใช้ฟังก์ชัน ทั้งสองนี้ขึ้นอยู่กับว่า string นั้นถูกเก็บเป็นแบบ binary (case-sensitive) หรือไม่ เช่น
# ในกรณีที่ไม่ได้เก็บเป็น binary SELECT name FROM person;
| name |
|---|
| Calvin |
| alex |
ถ้า name ถูกเก็บข้อมูลเป็นชนิด string แบบ nonbinary (case-insensitive) ซึ่งหมายความว่า "C" จะมีค่าใหญ่กว่า "a" ดังนั้นผลลัพธ์ที่ได้จากการหาค่าสูงสุดก็คือ "Calvin" นั่นเอง
SELECT MAX(name) FROM t;
| MAX(name) |
|---|
| Calvin |
แต่ถ้าค่าถูกเก็บเป็นแบบ binary (เช่น CHAR BINARY) ดังนั้นการเปรียบเทียบโดยการใช้ค่า byte ของอักขระนั้น ๆ (case-sensitive) ถ้าเป็นตัวอักษรตัวพิมพ์เล็กจะมีค่า bytes ใหญ่กว่าตัวอักษรตัวพิมพ์ใหญ่ ดังนั้นผลลัพธ์ที่ได้จะแตกต่างกันดังนี้
# เปลี่ยนเป็นการเก็บแบบ BINARY ALTER TABLE person MODIFY name CHAR(20) BINARY; SELECT MAX(name) FROM person;
| MAX(name) |
|---|
| alex |
ผู้สนับสนุน