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

ฟังก์ชัน STRCMP() (String Compare) ใน MySQL ใช้เพื่อเปรียบเทียบข้อความ (string) สองค่า แบบตรงตัว (case-sensitive) แล้วคืนค่าตามผลการเปรียบเทียบ คล้ายกับการใช้ = ใน WHERE แต่ STRCMP() จะบอกผลว่า น้อยกว่า, เท่ากัน, หรือมากกว่า

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

  • ใช้ในกรณีที่ต้องการเปรียบเทียบข้อความแบบละเอียด (case-sensitive และ character-by-character)
  • ใช้ใน IF(), CASE, หรือ ORDER BY เพื่อจัดลำดับหรือจัดกลุ่มข้อมูล
  • ใช้ตรวจสอบข้อความที่อาจคล้ายกันแต่ไม่เหมือน 100%

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

STRCMP(str1, str2)
  • str1 คือข้อความที่ 1
  • str2 คือข้อความที่ 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;
แชร์เรื่องนี้