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

หาความยาวรวมของทุกคอลัมน์ในแถว และแสดงในคอลัมน์ใหม่ใน MySQL ด้วย CHAR_LENGTH(CONCAT())

การคำนวณความยาวรวมของคอลัมน์หลายคอลัมน์ต่อแถวด้วย 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() แทน