IF…ELSE trong các ngôn ngữ lập trình C/C++, JAVA, PHP hay các ngôn ngữ lập trình khác chúng ta đã được tìm hiểu, thì đây là câu lệnh được sử dụng để thực hiện các hành động khác nhau dựa theo các điều kiện khác nhau hay dùng để rẽ nhánh chương trình.
Mệnh đề IF…ELSE trong MySQL cũng tương tự như vậy. Tuy nhiên trong bài viết này ta sẽ không tìm hiểu về mệnh đề IF…ELSE mà chúng ta tìm hiểu về hàm IF(). Hàm này hoạt động dựa trên câu lệnh IF, hàm có 3 tham số, tham số thứ nhất là điều kiện, tham số thứ 2 là kết quả sẽ được trả về cho hàm nếu điều kiện đưa vào hàm là đúng, tham số thứ 3 là kết quả trả về cho hàm nếu điều kiện là sai. Cụ thể như thế nào và cách dùng hàm IF() ra sao hãy cùng blog tuicocach.com tìm hiểu ngay bài viết dưới đây.
Hàm IF() trong MySQL
Hàm IF() trong MySQL trả về một giá trị nếu điều kiện là TRUE hoặc giá trị khác nếu điều kiện là FALSE.
Cú pháp hàm IF()
IF(condition, value_if_true, value_if_false)
Trong đó:
- condition: Là điều kiện
- value_if_true: Kết quả của hàm sẽ trả về giá trị này nếu điều kiện là đúng
- value_if_false: Kết quả của hàm sẽ trả về giá trị này nếu điều kiện là sai
Ví dụ:
IF(1 < 2, 1, 0)
Trong ví dụ này hiển nhiên 1 là bé hơn 2, như vậy tức là điều kiện này là đúng. Vậy hàm sẽ trả về kết quả là 1.
IF(1 > 2, 1, 0)
Nhưng trong trường hợp này, 1 là không thể lớn hơn 2 như vậy tức là điều kiện đã sai. Vậy ví dụ này hàm sẽ trả về kết quả là 0.
=>>XEM THÊM: Kiếm tiền Accesstrade, kiếm tiền tại nhà với Accesstrade.vn – Tiếp thị liên kết
Ví dụ áp dụng
Mình sẽ có một ví dụ cụ thể với bảng dữ liệu như bên dưới.
Ở đây chúng ta có thể rất dễ dàng nhận thấy cột role có 3 giá trị khác nhau. với giá trị tương ứng với vị trí chức vụ: 1- admin, 2 – agent, 3 – user.
Vậy khi truy xuất dữ liệu mình muốn hiển thị một cột để phân biệt rõ rằng hơn tài khoản đó là admin hoặc không phải admin(coi user và agent là một loại tk như nhau).
Mình sẽ viết lệnh SQL như sau:
SELECT *, IF(role = 1, 1, 0) AS is_admin FROM `users` WHERE 1;
Trong câu lệnh trên trong hàm IF tham số điều kiện là role = 1, tham số thứ 2 là 1(trả về khi đk đúng), tham số thứ 3 là 0(trả về khi đk sai).
Như vậy tức là hàng nào có role là 1 thì hàm IF sẽ trả về kết quả là 1, ngược lại các hàng còn lại trả kết quả về 0.
Sử dụng AS is_admin để đặt lại tên cho cột đó là is_admin. Nếu bạn còn chưa biết về AS thì xem thêm bài viết này nhé: Sử dụng AS (Alias) trong MySQL – Đặt bí danh trong MySQL.
Khi thực hiện câu lệnh truy vấn trên ta sẽ nhận được kết quả như bảng dưới đây.
Cột is_admin đều có giá trị là 1 với các hàng có role là 1, ngược lại các hàng còn lại đều có giá trị là 0.
Cảm ơn bạn đã theo dõi bài viết! Hy vọng qua bài viết này đã giúp bạn hiểu rõ về hàm if trong MySQL.
[XEM TẤT CẢ CÁC BÀI HƯỚNG DẪN MYSQL TẠI ĐÂY]
XEM THÊM Câu lệnh INSERT INTO trong MySQL – Lệnh chèn dữ liệu vào bảng Câu lệnh CREATE TABLE trong MySQL – Lệnh tạo bảng mới Các kiểu dữ liệu trong MySQL (Data Types) – Học MySQL Câu lệnh SELECT trong MySQL – Khi nào thì dùng lệnh SELECT Toán tử so sánh trong MySQL – So sánh bằng, lớn hơn, nhỏ hơn Sử dụng AS (Alias) trong MySQL – Đặt bí danh trong MySQL