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 教程