MySQL 如何在IF()函数中使用SELECT语句作为参数?

MySQL 如何在IF()函数中使用SELECT语句作为参数?

可以将SELECT语句作为MySQL IF()函数的第一个参数使用。为了让您理解,在这里我们考虑从表“学生”中获取的以下数据。

mysql> Select * from Students;
+----+-----------+-----------+----------+----------------+
| id | Name      | Country   | Language | Course         |
+----+-----------+-----------+----------+----------------+
| 1  | Francis   | 英国      | 英语     | 文学           |
| 2  | Rick      | 美国      | 英语     | 历史           |
| 3  | Correy    | 美国      | 英语     | 计算机         |
| 4  | Shane     | 法国      | 法语     | 计算机         |
| 5  | Validimir | 俄罗斯    | 俄语     | 计算机         |
| 6  | Steve     | 澳大利亚  | 英语     | 地理信息学     |
| 7  | Rahul     | 印度      | 印地语   | 瑜伽           |
| 8  | Harshit   | 印度      | 印地语   | 计算机         |
| 9  | Harry     | 新西兰    | 英语     | 电子学         |
+----+-----------+-----------+----------+----------------+
9 rows in set (0.00 sec)

现在,以下查询将使用SELECT语句作为IF()函数的参数。

mysql> Select ID, IF((Select COUNT(*) FROM Students WHERE Language = '英语')>(Select COUNT(*) from Students WHERE Language <> '英语'),(CONCAT("姓名是", Name)),(CONCAT("课程是", Course))) AS '姓名/课程' from Students;
+----+------------------+
| ID | 姓名/课程        |
+----+------------------+
| 1  | 姓名是 Francis   |
| 2  | 姓名是 Rick      |
| 3  | 姓名是 Correy    |
| 4  | 姓名是 Shane     |
| 5  | 姓名是 Validimir |
| 6  | 姓名是 Steve     |
| 7  | 姓名是 Rahul     |
| 8  | 姓名是 Harshit   |
| 9  | 姓名是 Harry     |
+----+------------------+
9 rows in set (0.00 sec)

阅读更多:MySQL 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程