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

Truy vấn MySQL lọc email bắt đầu bằng 5 chữ số với REGEXP

Lọc email có tiền tố 5 chữ số dùng biểu thức chính quy REGEXP

Sử dụng REGEXP '^[0-9]{5}' để khớp chuỗi bắt đầu bằng đúng 5 chữ số (0-9). Dấu ^ = đầu chuỗi, [0-9] = chữ số, {5} = đúng 5 lần.

1. Tạo bảng và chèn email

mysql> CREATE TABLE DemoTable (UserEmailAddress VARCHAR(100));
mysql> INSERT INTO DemoTable VALUES
    ('6574John@gmail.com'), ('Carol23456@gmail.com'),
    ('98989Chris_45678@gmail.com'), ('Mike12@gmail.com'),
    ('56453Adam@gmail.com');

2. Xem dữ liệu

mysql> SELECT * FROM DemoTable;
+----------------------------+
| UserEmailAddress           |
+----------------------------+
| 6574John@gmail.com         |
| Carol23456@gmail.com       |
| 98989Chris_45678@gmail.com |
| Mike12@gmail.com           |
| 56453Adam@gmail.com        |
+----------------------------+

3. Truy vấn: Email bắt đầu bằng 5 chữ số

mysql> SELECT * FROM DemoTable
    WHERE UserEmailAddress REGEXP '^[0-9]{5}';

4. Kết quả

+----------------------------+
| UserEmailAddress           |
+----------------------------+
| 98989Chris_45678@gmail.com |
| 56453Adam@gmail.com        |
+----------------------------+

Phân tích:

  • '6574John...' → 4 chữ số đầu → KHÔNG khớp
  • 'Carol23456...' → bắt đầu bằng chữ → KHÔNG khớp
  • '98989Chris...' → 5 chữ số '98989' → KHỚP
  • 'Mike12...' → bắt đầu bằng chữ → KHÔNG khớp
  • '56453Adam...' → 5 chữ số '56453' → KHỚP

Các biến thể REGEXP hữu ích cho email:

MẫuÝ nghĩa
'^[0-9]{5}'Bắt đầu bằng 5 chữ số
'^[0-9]{5,}'Bắt đầu bằng ≥5 chữ số
'^[0-9]{5}[^0-9]'Bắt đầu 5 chữ số theo sau KHÔNG phải số
'^[0-9]{5}@'Bắt đầu 5 chữ số rồi ngay @
'^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$'Validate email cơ bản

Lưu ý: REGEXP không dùng index. Với bảng lớn, cân nhắc generated column + index hoặc full-text search.