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

Triển khai REGEXP MySQL lấy bản ghi chứa dấu chấm và số

Lọc phiên bản phần mềm (dạng x.y.z) với REGEXP trong MySQL

Sử dụng biểu thức chính quy để chỉ giữ các bản ghi đúng định dạng số.dấu chấm.số...

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

mysql> create table DemoTable ( Version varchar(20) ); 
mysql> insert into DemoTable values('1.0.0'); 
mysql> insert into DemoTable values('2.s6.9'); 
mysql> insert into DemoTable values('1.5.0');

Truy vấn REGEXP

mysql> select * from DemoTable 
    -> where Version regexp '^[0-9]+\\.[0-9]+(\\.[0-9]+)*$';

Kết quả

+---------+ 
| Version | 
+---------+ 
| 1.0.0   | 
| 1.5.0   | 
+---------+

Giải thích REGEXP:

  • ^: Bắt đầu chuỗi
  • [0-9]+: Một hoặc nhiều chữ số (major version)
  • \\.: Dấu chấm thực tế (escape)
  • [0-9]+: Minor version
  • (\\.[0-9]+)*: Nhóm (dấu chấm + số) lặp lại 0 hoặc nhiều lần (patch, build...)
  • $: Kết thúc chuỗi

Kết quả: '1.0.0' và '1.5.0' khớp. '2.s6.9' bị loại vì có chữ 's' giữa các dấu chấm.

Mở rộng: Chỉ cho phép 3 phần (major.minor.patch): '^[0-9]+\\.[0-9]+\\.[0-9]+$'.