Sử dụng REGEXP thay vì LIKE cho chuỗi chứa dấu chấm
Khi dữ liệu chứa dấu chấm (ví dụ: phiên bản '19.6'), LIKE có thể không hoạt động chính xác do ký tự đặc biệt. Giải pháp: dùng REGEXP.
Tạo bảng và dữ liệu
mysql> create table DemoTable (
GameReleaseVersion varchar(20)
);
Query OK, 0 rows affected (0.57 sec)
mysql> insert into DemoTable values('19.6');
mysql> insert into DemoTable values('18.4');
mysql> insert into DemoTable values('17.6');
mysql> insert into DemoTable values('19.5');
Truy vấn REGEXP lấy phiên bản bắt đầu bằng 19
mysql> select * from DemoTable
-> where GameReleaseVersion regexp '^19\\.[0-9]+$';
Kết quả
+--------------------+ | GameReleaseVersion | +--------------------+ | 19.6 | | 19.5 | +--------------------+ 2 rows in set (0.15 sec)
Giải thích REGEXP:
^19: Bắt đầu bằng '19'\\.: Dấu chấm thực sự (cần escape)[0-9]+: Một hoặc nhiều chữ số$: Kết thúc chuỗi
Tại sao không dùng LIKE? LIKE '19.%' cũng hoạt động trong trường hợp này, nhưng REGEXP mạnh hơn cho các mẫu phức tạp (ví dụ: '19.[5-9]' chỉ lấy 19.5 đến 19.9).