Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Truy vấn MySQL lấy bản ghi có độ dài lớn hơn 1

Để lấy các bản ghi có độ dài lớn hơn 1, ta sử dụng hàm OCTET_LENGTH() để kiểm tra độ dài byte của chuỗi.

Tạo bảng và chèn dữ liệu

mysql> create table DemoTable ( 
    UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    UserName varchar(20), 
    UserGender varchar(20) 
); 
Query OK, 0 rows affected (0.55 sec)
mysql> insert into DemoTable(UserName,UserGender) values('John','M'); 
Query OK, 1 row affected (0.82 sec) 
mysql> insert into DemoTable(UserName,UserGender) values('Carol','Male'); 
Query OK, 1 row affected (0.21 sec) 
mysql> insert into DemoTable(UserName,UserGender) values('Mia','Female'); 
Query OK, 1 row affected (0.16 sec) 
mysql> insert into DemoTable(UserName,UserGender) values('Emma','F'); 
Query OK, 1 row affected (0.17 sec)

Xem toàn bộ dữ liệu

mysql> select *from DemoTable;
+--------+----------+------------+
| UserId | UserName | UserGender |
+--------+----------+------------+
| 1      | John     | M          |
| 2      | Carol    | Male       |
| 3      | Mia      | Female     |
| 4      | Emma     | F          |
+--------+----------+------------+
4 rows in set (0.00 sec)

Truy vấn lọc bản ghi độ dài > 1

mysql> select *from DemoTable where OCTET_LENGTH(UserGender) > 1;
+--------+----------+------------+
| UserId | UserName | UserGender |
+--------+----------+------------+
| 2      | Carol    | Male       |
| 3      | Mia      | Female     |
+--------+----------+------------+
2 rows in set (0.00 sec)

Giải thích: OCTET_LENGTH() trả về độ dài tính bằng byte. Các giá trị 'M' và 'F' có độ dài 1 byte, trong khi 'Male' (4 byte) và 'Female' (6 byte) thoả mãn điều kiện > 1.