MySQL-IF控制流函数
时间:2020-02-23 14:41:02 来源:igfitidea点击:
在本教程中,我们将学习MySQL中的IF控制流函数。
IF函数
我们使用IF函数检查给定条件,然后根据匹配返回一些值。
IF语法
IF (condition, result_for_true, result_for_false)
如果满足条件,则返回result_for_true。
否则返回result_for_false
。
表
在本教程中,我们将使用orders
表。
表:订单
mysql> SELECT * FROM orders; +---------+------------+--------+-------------+---------------------+---------------------+ | orderid | employeeid | amount | orderstatus | lastmodified | created | +---------+------------+--------+-------------+---------------------+---------------------+ | 1 | e03 | 15.00 | OPEN | 2016-01-02 03:04:05 | 2016-01-02 03:04:05 | | 2 | e01 | 25.50 | OPEN | 2016-01-04 03:04:03 | 2016-01-04 03:04:03 | | 3 | e05 | 100.70 | CLOSED | 2016-02-02 03:03:04 | 2016-02-02 03:03:04 | | 4 | e02 | 22.18 | OPEN | 2016-01-02 03:04:05 | 2016-01-02 03:04:05 | | 5 | e04 | 9.50 | CANCELLED | 2016-01-04 03:04:03 | 2016-01-04 03:04:03 | | 6 | e04 | 99.99 | OPEN | 2016-02-02 03:03:04 | 2016-02-02 03:03:04 | +---------+------------+--------+-------------+---------------------+---------------------+ 6 rows in set (0.00 sec)
例子1
在下面的示例中,我们将检查金额是"大于15"还是"小于或者等于15"。
mysql> SELECT o.orderid, IF(o.amount > 15, 'Greater than 15', 'Less than or Equal to 15') AS result FROM orders o; +---------+--------------------------+ | orderid | result | +---------+--------------------------+ | 1 | Less than or Equal to 15 | | 2 | Greater than 15 | | 3 | Greater than 15 | | 4 | Greater than 15 | | 5 | Less than or Equal to 15 | | 6 | Greater than 15 | +---------+--------------------------+ 6 rows in set (0.00 sec)
例子2
在下面的示例中,我们将添加另一个IF函数,以检查金额是"大于15"还是"小于15"或者"等于15"。
mysql> SELECT o.orderid, IF(o.amount > 15, 'Greater than 15', IF(o.amount < 15, 'Less than 15', 'Equal to 15')) AS result FROM orders o; +---------+-----------------+ | orderid | result | +---------+-----------------+ | 1 | Equal to 15 | | 2 | Greater than 15 | | 3 | Greater than 15 | | 4 | Greater than 15 | | 5 | Less than 15 | | 6 | Greater than 15 | +---------+-----------------+ 6 rows in set (0.00 sec)