Có thể dùng subquery (SELECT con) làm đối số đầu tiên (điều kiện) của IF().
Dữ liệu: Bảng Students
mysql> SELECT * FROM Students; +----+-----------+-----------+----------+----------------+ | id | Name | Country | Language | Course | +----+-----------+-----------+----------+----------------+ | 1 | Francis | UK | English | Literature | | 2 | Rick | USA | English | History | | 3 | Correy | USA | English | Computers | | 4 | Shane | France | French | Computers | | 5 | Validimir | Russia | Russian | Computers | | 6 | Steve | Australia | English | Geoinformatics | | 7 | Rahul | India | Hindi | Yoga | | 8 | Harshit | India | Hindi | Computers | | 9 | Harry | NZ | English | Electronics | +----+-----------+-----------+----------+----------------+
Truy vấn: IF với subquery đếm số lượng
mysql> SELECT ID,
IF(
(SELECT COUNT(*) FROM Students WHERE Language = 'English') >
(SELECT COUNT(*) FROM Students WHERE Language <> 'English'),
CONCAT('Name is ', Name),
CONCAT('Course is ', Course)
) AS 'Name/Course'
FROM Students;
Kết quả (ngôn ngữ English chiếm đa số → nhánh TRUE)
+----+-------------------+ | ID | Name/Course | +----+-------------------+ | 1 | Name is Francis | | 2 | Name is Rick | | 3 | Name is Correy | | 4 | Name is Shane | | 5 | Name is Validimir | | 6 | Name is Steve | | 7 | Name is Rahul | | 8 | Name is Harshit | | 9 | Name is Harry | +----+-------------------+
Subquery trả về scalar (1 giá trị) dùng được trong biểu thức IF().