การค้นหาเรคคอร์ดที่ความยาวของฟิลด์มากกว่า 1 ใน MySQL
สามารถใช้ฟังก์ชัน OCTET_LENGTH() เพื่อตรวจสอบความยาวของข้อมูลในหน่วยไบต์ และกรองเฉพาะเรคคอร์ดที่มีความยาวมากกว่า 1
ตัวอย่างการใช้งาน
สร้างตารางตัวอย่าง:
mysql> create table DemoTable (
UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserName varchar(20),
UserGender varchar(20)
);
เพิ่มข้อมูลตัวอย่าง:
mysql> insert into DemoTable(UserName,UserGender) values('John','M');
mysql> insert into DemoTable(UserName,UserGender) values('Carol','Male');
mysql> insert into DemoTable(UserName,UserGender) values('Mia','Female');
mysql> insert into DemoTable(UserName,UserGender) values('Emma','F');
แสดงข้อมูลทั้งหมด:
mysql> select * from DemoTable;
+--------+----------+------------+ | UserId | UserName | UserGender | +--------+----------+------------+ | 1 | John | M | | 2 | Carol | Male | | 3 | Mia | Female | | 4 | Emma | F | +--------+----------+------------+
คิวรีเพื่อดึงเฉพาะเรคคอร์ดที่ UserGender มีความยาวมากกว่า 1 ไบต์:
mysql> select * from DemoTable where OCTET_LENGTH(UserGender) > 1;
ผลลัพธ์:
+--------+----------+------------+ | UserId | UserName | UserGender | +--------+----------+------------+ | 2 | Carol | Male | | 3 | Mia | Female | +--------+----------+------------+
คำอธิบาย: ฟังก์ชัน OCTET_LENGTH() คืนค่าความยาวในหน่วยไบต์ ซึ่งเหมาะสำหรับข้อมูลที่อาจมีตัวอักษรหลายไบต์ (Multi-byte characters) หากต้องการนับจำนวนตัวอักษร ให้ใช้ CHAR_LENGTH() แทน