STRCMP() รองรับตัวเลขโดยตรง
ใส่ตัวเลข โดยไม่ต้องใส่เครื่องหมายคำพูด MySQL จะแปลงเป็นสตริงเพื่อเปรียบเทียบ
ตัวอย่างครบ
mysql> SELECT
STRCMP(10,10) AS 'Equal Numbers',
STRCMP(11,10) AS '2nd Smaller',
STRCMP(10,11) AS '1st Smaller',
STRCMP(10,NULL) AS '2nd NULL',
STRCMP(NULL,10) AS '1st NULL',
STRCMP(NULL,NULL) AS 'Both NULL';
+---------------+-------------+-------------+----------+----------+-----------+
| Equal Numbers | 2nd Smaller | 1st Smaller | 2nd NULL | 1st NULL | Both NULL |
+---------------+-------------+-------------+----------+----------+-----------+
| 0 | 1 | -1 | NULL | NULL | NULL |
+---------------+-------------+-------------+----------+----------+-----------+
การอธิบายแต่ละกรณี
- 10, 10 → 0 (เท่ากัน)
- 11, 10 → 1 (ตัวแรกมากกว่า)
- 10, 11 → -1 (ตัวแรกน้อยกว่า)
- มี NULL → คืน NULL ทุกกรณี
ข้อสังเกต
- เปรียบเทียบแบบ String comparison (lexicographical)
- ตัวเลขหลายหลักอาจให้ผลต่างจากการเปรียบเทียบตัวเลขจริง (เช่น '9' > '10' เพราะ '9' > '1')
- แนะนำให้ใช้ตัวดำเนินการเปรียบเทียบตัวเลข (
>,<,=) แทนสำหรับตัวเลข