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

การหาขนาดสตริงของคอลัมน์เฉพาะและรวมกันใน MySQL

เมื่อต้องการหาความยาว (จำนวนตัวอักษร) ของคอลัมน์ข้อความ และรวมกันทั้งกลุ่ม ใช้ฟังก์ชัน CHAR_LENGTH() (นับตัวอักษร) ร่วมกับ SUM() และ WHERE ... IN เพื่อกรองเงื่อนไข

ตัวอย่างการใช้งาน

สร้างตารางและเพิ่มข้อมูล:

mysql> CREATE TABLE DemoTable1612 (FirstName VARCHAR(20), LastName VARCHAR(20));
mysql> INSERT INTO DemoTable1612 VALUES ('David', 'Brown'), ('John', 'Smith'), ('Bob', 'Taylor');

ดูข้อมูล:

mysql> SELECT * FROM DemoTable1612;
+-----------+----------+
| FirstName | LastName |
+-----------+----------+
| David     | Brown    |
| John      | Smith    |
| Bob       | Taylor   |
+-----------+----------+

รวมความยาว FirstName ของแถวที่ LastName อยู่ในรายการ:

mysql> SELECT SUM(CHAR_LENGTH(FirstName)) 
    -> FROM DemoTable1612 
    -> WHERE LastName IN ('Brown', 'Smith', 'Taylor');

ผลลัพธ์ (David=5, John=4, Bob=3 → รวม 12):

+-----------------------------+
| SUM(CHAR_LENGTH(FirstName)) |
+-----------------------------+
|                          12 |
+-----------------------------+

CHAR_LENGTH vs LENGTH

ฟังก์ชันนับตัวอย่าง 'ไทย'ตัวอย่าง 'English'
CHAR_LENGTH() / CHARACTER_LENGTH()จำนวนตัวอักษร (Characters)37
LENGTH() / OCTET_LENGTH()จำนวน Bytes9 (UTF-8: 3 bytes/char)7

แนะนำใช้ CHAR_LENGTH() สำหรับนับความยาวข้อความที่มนุษย์อ่าน

การประยุกต์ใช้

  • คำนวณขนาด Storage: SUM(CHAR_LENGTH(col)) ประมาณ Bytes
  • Validation: WHERE CHAR_LENGTH(phone) != 10 หาเบอร์ผิดรูปแบบ
  • Truncate: LEFT(col, 50) ตัดให้ไม่เกิน 50 ตัวอักษร
  • Statistics: ความยาวเฉลี่ยชื่อ, ที่อยู่, คำอธิบาย

ฟังก์ชันสตริงที่เกี่ยวข้อง

ฟังก์ชันคำอธิบาย
LENGTH(str)ความยาวใน Bytes
CHAR_LENGTH(str)ความยาวใน Characters
BIT_LENGTH(str)ความยาวใน Bits
CONCAT_WS(sep, ...)ต่อสตริงพร้อมตัวคั่น
SUBSTRING(str, pos, len)ดึงส่วนย่อย