Toán tử trong MySQL
Bùi Tấn Lực
- 971
- 25/09/2025
Toán tử số học trong MySQL
| Toán tử | Mô tả | Chi tiết |
| + | Phép Cộng | |
| - | Phép Trừ | |
| * | Phép Nhân | |
| / | Phép Chia | |
| % | Số dư của phép chia |
Toán tử so sánh trong MySQL
| Toán tử | Mô tả | Chi tiết |
| = | Bằng | |
| > | Lớn hơn | |
| Nhỏ hơn | ||
| >= | Lớn hơn hoặc bằng | |
| Nhỏ hơn hoặc bằng | ||
| Không bằng |
Toán tử logic trong MySQL
| Toán tử | Mô tả | Chi tiết |
| ALL | Dùng để so sánh id của bảng này xem có bằng, lớn hơn, nhỏ hơn với tất cả các id đã thỏa điều kiện ở bảng khác hay không. | Chi tiết |
| AND | Được sử dụng để nối các điều kiện lại với nhau, các hàng trong bảng phải thỏa hết những điều kiện mà toán tử and nối lại với nhau. | Chi tiết |
| ANY | Dùng để lấy danh sách thuộc khóa chính ở bảng này thuộc bất kỳ một điều kiện nào đưa ra ở bảng khác có liên quan khóa. | Chi tiết |
| BETWEEN | Được dùng để lấy những hàng có giá trị của cột nằm trong một khoảng giá trị nhất định. | Chi tiết |
| EXISTS | Dùng để lấy một danh sách thuộc khóa chính ở bảng này có nằm trong một bảng khác và có thể có điều kiện kèm theo. | Chi tiết |
| IN | Được sử dụng trong mệnh đề WHERE, nếu giá trị của cột giống với một phần tử trong chuỗi thì thỏa điều kiện, mỗi phần tử trong toán tử in được tách nhau bằng dấu phẩy. | Chi tiết |
| LIKE | Được sử dụng trong mệnh để WHERE, nếu trong cột chứa chuỗi ký tự đưa vào thì hàng đó sẽ thỏa điều kiện. | Chi tiết |
| OR | Được sử dụng trong mệnh đề WHERE dùng để nhóm các điều kiện lại với nhau, mỗi hàng chỉ cần thỏa một trong những điều kiện đó. | Chi tiết |
| SOME | Dùng để lấy những hàng ở bảng này mà chỉ cần thỏa điều kiện đối với một vài hàng có điều kiện ở bảng khác. | Chi tiết |
| REGEXP | Dùng để kiểm tra một chuỗi có chứa các ký tự ở nhiều vị trí hay không hoặc có đúng cấu trúc cần lấy hay không. | Chi tiết |
| UNION | Dùng để nối 2 hoặc nhiều câu lệnh select sau đó lấy các cột giống nhau của các bảng và loại bỏ các hàng trùng lặp, các cột khi select phải có thứ tự giống nhau và kiểu dữ liệu cũng giống nhau, các số lượng cột của các câu lệnh select phải giống nhau. | Chi tiết |
| UNION ALL | Dùng để nối 2 hoặc nhiều câu lệnh select sau đó lấy các cột giống nhau của các bảng và không loại bỏ các hàng trùng lặp, các cột khi select phải có thứ tự giống nhau và kiểu dữ liệu cũng giống nhau, các số lượng cột của các câu lệnh select phải giống nhau. | Chi tiết |
Cách kết hợp toán tử MySQL trong câu lệnh SQL
Khi xử lý dữ liệu thực tế, một câu lệnh SQL thường cần nhiều điều kiện cùng lúc thay vì chỉ sử dụng một toán tử. Việc kết hợp đúng các toán tử giúp truy vấn lọc dữ liệu chính xác, dễ kiểm soát và hạn chế kết quả ngoài mong muốn.
Kết hợp nhiều toán tử trong mệnh đề WHERE
Trong WHERE, có thể kết hợp toán tử so sánh, toán tử logic và các toán tử như IN, BETWEEN hoặc LIKE để tạo điều kiện lọc phù hợp.
SELECT *
FROM products
WHERE price > 500000
AND category_id IN (1, 2, 3)
AND name LIKE '%Laptop%';
Trong ví dụ trên, dữ liệu phải đồng thời thỏa mãn cả ba điều kiện: giá lớn hơn 500.000, thuộc một trong các nhóm được chỉ định và tên sản phẩm có chứa từ khóa cần tìm.
Thứ tự ưu tiên khi MySQL xử lý toán tử
Khi một biểu thức chứa nhiều toán tử, MySQL sẽ xử lý theo thứ tự ưu tiên nhất định. Điều này có thể làm kết quả khác với cách đọc thông thường nếu các điều kiện không được nhóm rõ ràng.
Đặc biệt, AND thường được xử lý trước OR. Vì vậy, khi muốn thể hiện chính xác ý định của điều kiện, nên chủ động sử dụng dấu ngoặc thay vì phụ thuộc hoàn toàn vào thứ tự ưu tiên.
Dùng dấu ngoặc để kiểm soát điều kiện
Dấu ngoặc giúp nhóm các điều kiện cần được đánh giá cùng nhau, đồng thời làm câu lệnh dễ đọc và giảm nguy cơ lọc sai dữ liệu.
SELECT *
FROM users
WHERE (status = 'active' AND age >= 18)
OR role = 'admin';
Cách viết này thể hiện rõ rằng người dùng đủ tuổi và đang hoạt động được chọn, hoặc người có quyền quản trị cũng được chọn dù không thỏa điều kiện đầu tiên.
Lưu ý khi kết hợp toán tử với giá trị NULL
NULL không phải là một giá trị thông thường nên không thể kiểm tra bằng cách dùng = NULL hoặc NULL. Khi cần xác định một cột có giá trị NULL, nên sử dụng IS NULL hoặc IS NOT NULL.
SELECT *
FROM users
WHERE email IS NOT NULL
AND status = 'active';
Nắm rõ cách xử lý NULL đặc biệt quan trọng khi kết hợp nhiều điều kiện, bởi phép so sánh với NULL có thể tạo ra kết quả không xác định và khiến truy vấn không trả về dữ liệu như dự kiến.
Tải file database .sql về nếu muốn kiểm tra hoặc thực hành Tải về.
- 0 Bình luận
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *