Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ฟังก์ชัน STRCMP() ใน MySQL ทำงานอย่างไร

เปรียบเทียบสตริงสองค่า

STRCMP(str1, str2) คืนค่าตามการเปรียบเทียบแบบ Lexicographical (ตามลำดับตัวอักษร)

Syntax

STRCMP(str1, str2)

ค่าที่คืน

ค่าเงื่อนไข
0str1 = str2
1str1 > str2 (str2 "น้อยกว่า")
-1str1 < str2 (str1 "น้อยกว่า")
NULLอาร์กิวเมนต์ใดเป็น NULL

ตัวอย่าง

mysql> SELECT STRCMP('MySQL', 'MySQL');  -- 0
mysql> SELECT STRCMP('MSQL', 'MySQL');   -- -1 (MSQL < MySQL)
mysql> SELECT STRCMP('MySQL', 'MSQL');   -- 1  (MySQL > MSQL)

ตัวอย่างหลายกรณีพร้อมกัน

mysql> SELECT 
    STRCMP('Test', 'Test') AS 'Equal Strings',
    STRCMP('TestABC', 'Test') AS '2nd Smaller',
    STRCMP('Test', 'TestABC') AS '1st Smaller',
    STRCMP('Test', NULL) AS '2nd NULL',
    STRCMP(NULL, 'Test') AS '1st NULL',
    STRCMP(NULL, NULL) AS 'Both NULL';
+---------------+-------------+-------------+----------+----------+-----------+
| Equal Strings | 2nd Smaller | 1st Smaller | 2nd NULL | 1st NULL | Both NULL |
+---------------+-------------+-------------+----------+----------+-----------+
| 0             | 1           | -1          | NULL     | NULL     | NULL      |
+---------------+-------------+-------------+----------+----------+-----------+

ข้อควรระวัง

  • Case-sensitive ขึ้นกับ Collation ของฐานข้อมูล
  • เปรียบเทียบแบบตัวอักษร ไม่ใช่ตัวเลข (เช่น '9' > '10')
  • ใช้กับตัวเลขได้ แต่ควรใช้ตัวดำเนินการเปรียบเทียบตัวเลขแทน