เปรียบเทียบสตริงสองค่า
STRCMP(str1, str2) คืนค่าตามการเปรียบเทียบแบบ Lexicographical (ตามลำดับตัวอักษร)
Syntax
STRCMP(str1, str2)
ค่าที่คืน
| ค่า | เงื่อนไข |
|---|---|
| 0 | str1 = str2 |
| 1 | str1 > str2 (str2 "น้อยกว่า") |
| -1 | str1 < 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')
- ใช้กับตัวเลขได้ แต่ควรใช้ตัวดำเนินการเปรียบเทียบตัวเลขแทน