MySQL 控制语法结构包括条件语句和循环语句。
- 条件语句
- IF 语句:根据条件的结果来执行相应的 SQL 代码。
IF (condition, statement_if_true, statement_if_false)
例如,如果价格小于10元,则返回“便宜”,否则返回“昂贵”:
SELECT name,
IF(price < 10, '便宜', '昂贵') AS price_group
FROM products;
- CASE 语句:根据条件的不同结果执行相应的 SQL 代码。
CASE expression
WHEN value1 THEN statement1
WHEN value2 THEN statement2
ELSE statement3
END
例如,对价格进行分类:
SELECT name,
CASE
WHEN price < 10 THEN '便宜'
WHEN price >= 10 AND price < 20 THEN '中等'
ELSE '昂贵'
END AS price_group
FROM products;
- 循环语句
- WHILE 循环:在满足指定条件时重复执行一系列 SQL 操作。
WHILE condition DO
statements
END WHILE;
例如,将 prices 表中所有数据加倍:
WHILE (SELECT COUNT(*) FROM prices WHERE processed = false) > 0 DO
UPDATE prices SET amount = amount * 2 WHERE processed = false LIMIT 1000;
SET @updated_rows = ROW_COUNT();
IF @updated_rows = 0 THEN
SET done = true;
END IF;
END WHILE;
注意事项:
- 控制语句可以帮助我们更有效地管理数据,但使用不当可能会导致错误和性能问题。要确保正确编写语法,并仅在必要时使用控制语句。
- 在循环中使用 SQL 操作需要小心,因为它们可能会对数据库性能产生负面影响。在设计应用程序时,请尝试避免频繁的循环操作。