สามารถรวมเงื่อนไข LIKE (ค้นหาข้อความ) และ CHAR_LENGTH() (ตรวจสอบความยาวข้อความ) ในคำสั่ง WHERE เดียวกันได้
ตัวอย่างการใช้งาน
1. สร้างตาราง
mysql> CREATE TABLE DemoTable (
Name VARCHAR(20)
);
Query OK, 0 rows affected (0.49 sec)
2. เพิ่มข้อมูลทดสอบ
mysql> INSERT INTO DemoTable VALUES('Chris Brown');
Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO DemoTable VALUES('Adam Smith');
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable VALUES('John Smith');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable VALUES('Carol Smith');
Query OK, 1 row affected (0.13 sec)
3. แสดงข้อมูลทั้งหมด
mysql> SELECT * FROM DemoTable; +-------------+ | Name | +-------------+ | Chris Brown | | Adam Smith | | John Smith | | Carol Smith | +-------------+
4. ค้นหาชื่อที่มี 'Smith' และความยาวน้อยกว่า 11 ตัวอักษร
mysql> SELECT * FROM DemoTable
-> WHERE Name LIKE '%Smith%'
-> AND CHAR_LENGTH(Name) < 11;
5. ผลลัพธ์
+------------+ | Name | +------------+ | Adam Smith | | John Smith | +------------+
คำอธิบาย
LIKE '%Smith%': ค้นหาชื่อที่มีคำว่า "Smith" อยู่ตรงไหนก็ได้ในสตริงCHAR_LENGTH(Name) < 11: กรองเฉพาะชื่อที่มีความยาวน้อยกว่า 11 ตัวอักษรAdam Smith= 10 ตัวอักษร ✓,John Smith= 10 ตัวอักษร ✓,Carol Smith= 11 ตัวอักษร ✗
ฟังก์ชันความยาวสตริงใน MySQL
| ฟังก์ชัน | คำอธิบาย |
|---|---|
CHAR_LENGTH(str) | นับจำนวน ตัวอักษร (Character) - รองรับ Unicode/UTF-8 |
LENGTH(str) | นับจำนวน ไบต์ (Byte) - 1 ตัวอักษรไทย = 3 ไบต์ |
สรุป
ใช้ LIKE และ CHAR_LENGTH() ร่วมกันใน WHERE ได้โดยตรง เหมาะสำหรับการกรองข้อมูลข้อความที่มีเงื่อนไขทั้ง "มีคำเฉพาะ" และ "ความยาวอยู่ในช่วงที่ต้องการ"