OCTET_LENGTH() = LENGTH()
ทั้งสองฟังก์ชันวัดความยาวสตริงเป็น ไบต์ (bytes) ไม่ใช่จำนวนตัวอักษร จึง ไม่รองรับ Multi-byte characters เช่น Unicode
Syntax
OCTET_LENGTH(str)
ตัวอย่าง
mysql> SELECT OCTET_LENGTH('tutorialspoint');
+--------------------------------+
| OCTET_LENGTH('tutorialspoint') |
+--------------------------------+
| 14 |
+--------------------------------+
ทดสอบกับ Unicode (UCS2)
mysql> SET @A = CONVERT('tutorialspoint' USING ucs2);
Query OK, 0 rows affected
mysql> SELECT OCTET_LENGTH(@A);
+------------------+
| OCTET_LENGTH(@A) |
+------------------+
| 28 |
+------------------+
เปรียบเทียบกับ CHAR_LENGTH()
mysql> SELECT CHAR_LENGTH(@A);
+-----------------+
| CHAR_LENGTH(@A) |
+-----------------+
| 14 |
+-----------------+
สรุป
| ฟังก์ชัน | หน่วยนับ | Multi-byte safe |
|---|---|---|
| LENGTH() / OCTET_LENGTH() | Bytes | ไม่ |
| CHAR_LENGTH() / CHARACTER_LENGTH() | Characters | ใช่ |