การคำนวณความยาวรวมของคอลัมน์หลายคอลัมน์ต่อแถวด้วย CHAR_LENGTH และ CONCAT
เพื่อหาจำนวนตัวอักษรรวมของหลายคอลัมน์ในแต่ละแถว เราสามารถต่อสตริงด้วย CONCAT() แล้ววัดความยาวด้วย CHAR_LENGTH()
สร้างตารางและเพิ่มข้อมูล
mysql> CREATE TABLE DemoTable (FirstName VARCHAR(100), LastName VARCHAR(100));
Query OK, 0 rows affected (1.07 sec)
mysql> INSERT INTO DemoTable VALUES('Chris','Brown');
mysql> INSERT INTO DemoTable VALUES('David','Miller');
mysql> INSERT INTO DemoTable VALUES('Carol','Taylor');
แสดงข้อมูลทั้งหมด
mysql> SELECT * FROM DemoTable;
ผลลัพธ์:
+-----------+----------+
| FirstName | LastName |
+-----------+----------+
| Chris | Brown |
| David | Miller |
| Carol | Taylor |
+-----------+----------+
3 rows in set (0.00 sec)
คำสั่งคำนวณความยาวรวม FirstName + LastName
mysql> SELECT CHAR_LENGTH(CONCAT(FirstName, LastName)) FROM DemoTable;
ผลลัพธ์:
+-----------------------------------------+
| char_length(concat(FirstName,LastName)) |
+-----------------------------------------+
| 10 |
| 11 |
| 11 |
+-----------------------------------------+
3 rows in set (0.00 sec)
คำอธิบาย
CONCAT(FirstName, LastName): ต่อสตริง FirstName และ LastName ติดกัน (ไม่มี Space)CHAR_LENGTH(...): นับจำนวนตัวอักษร (Characters) ไม่ใช่ Bytes (ใช้กับ Multi-byte charset ได้ถูกต้อง)- Chris(5) + Brown(5) = 10
- David(5) + Miller(6) = 11
- Carol(5) + Taylor(6) = 11
- หากต้องการนับ Bytes ให้ใช้
LENGTH()แทน