ฟังก์ชัน STRCMP() (String Compare) ใน MySQL ใช้เพื่อเปรียบเทียบข้อความ (string) สองค่า แบบตรงตัว (case-sensitive) แล้วคืนค่าตามผลการเปรียบเทียบ คล้ายกับการใช้ = ใน WHERE แต่ STRCMP() จะบอกผลว่า น้อยกว่า, เท่ากัน, หรือมากกว่า
ประโยชน์ของฟังก์ชัน STRCMP()
- ใช้ในกรณีที่ต้องการเปรียบเทียบข้อความแบบละเอียด (case-sensitive และ character-by-character)
- ใช้ใน
IF(),CASE, หรือORDER BYเพื่อจัดลำดับหรือจัดกลุ่มข้อมูล - ใช้ตรวจสอบข้อความที่อาจคล้ายกันแต่ไม่เหมือน 100%
รูปแบบการใช้งาน
STRCMP(str1, str2)
str1คือข้อความที่ 1str2คือข้อความที่ 2- ผลลัพธ์
- ถ้า
str1เท่ากับstr2จะคืนค่า 0 - ถ้า
str1น้อยกว่าstr2จะคืนค่า -1 - ถ้า
str1มากกว่าstr2จะคืนค่า 1
- ถ้า
ตัวอย่างการใช้งาน
SQL
SELECT STRCMP('apple', 'apple'); -- ผลลัพธ์: 0
SELECT STRCMP('banana', 'apple'); -- ผลลัพธ์: 1
SELECT STRCMP('apple', 'banana'); -- ผลลัพธ์: -1
SELECT STRCMP('ABC', 'abc'); -- ผลลัพธ์: -1 (หาก case-sensitive)
SELECT STRCMP(NULL, 'test'); -- ผลลัพธ์: NULLตรวจสอบว่านักแสดงมีชื่อเป็น 'PENELOPE' หรือไม่ โดยใช้ STRCMP()
SQL
SELECT first_name,
STRCMP(first_name, 'PENELOPE') AS compare_result
FROM actor
WHERE first_name = 'PENELOPE'
LIMIT 1;ใช้จัดลำดับชื่อนักแสดงโดยอิงจากการเปรียบเทียบ
SQL
SELECT first_name,
STRCMP(first_name, 'NICK') AS compare_to_nick
FROM actor
ORDER BY compare_to_nick
LIMIT 5;