📜  mysql if - SQL (1)

📅  最后修改于: 2023-12-03 15:33:01.595000             🧑  作者: Mango

MySQL IF语句

在 MySQL 中,IF 是一条流程控制语句,可根据指定条件执行不同操作。

IF 语句的一般语法如下:

IF(condition, value_if_true, value_if_false)

其中,

  • condition 是一个布尔表达式或逻辑条件;
  • value_if_true 是如果条件为 true 时要返回的值;
  • value_if_false 是如果条件为 false 时要返回的值。

下面是一个简单的实现:

SELECT IF(1 > 0, 'true', 'false') AS Result;

上述代码将返回 'true'

MySQL IF 的使用
1. IF 基本用法
SELECT ProductName, IF(UnitsInStock > 30, 'InStock', 'OutOfStock') AS StockStatus
FROM Products;

上述代码将返回产品的名称及库存状态,如果库存大于 30,则状态为 “InStock”,否则为 “OutOfStock”。

2. IF 替代NULL的处理
SELECT ProductName, IFNULL(UnitsInStock, 'N/A') AS StockNumber
FROM Products;

上述代码将返回产品名称及库存数量,如果库存数量为 NULL,则返回 “N/A”。

3. IF 用于计算列
SELECT ProductName, UnitPrice, UnitsInStock, UnitPrice * IF(UnitsInStock > 30, 0.9, 0.8) AS DiscountedPrice
FROM Products;

上述代码将返回产品名称、单价、库存数量以及折扣价(如果库存数量大于 30,则折扣价是原价的 90%,否则为 80%)。

4. IF 嵌套
SELECT ProductName, CategoryID,
IF(CategoryID = 1, 'Beverages',
  IF(CategoryID = 2, 'Condiments',
    IF(CategoryID = 3, 'Confections', 'Other'))) AS CategoryName
FROM Products;

上述代码将返回产品名称、类别 ID 及类别名称。如果类别 ID 是 1,则为饮料;如果是 2,则为调味品;如果是 3,则为糖果;否则为 “其他”。

总结

IF 是 MySQL 中的一个流程控制语句,允许根据指定的条件执行不同的操作。IF 语句可以用于处理 NULL 值、计算列和嵌套语句等常见情境。熟练掌握 IF 语句的使用有助于编写更为高效且易读的 SQL 语句。