在MySQL中创建支持多输出的超级英雄火焰超能力查询存储过程
MySQL存储过程:根据超级英雄名称获取火焰主题超能力
直接给你可用的存储过程代码,替换原框架里的IF ELSE占位内容即可:
DELIMITER // CREATE PROCEDURE GetFireThemedPowers(IN p_hero_name VARCHAR(100)) BEGIN SELECT p.power_name FROM heroes h JOIN hero_power hp ON h.hero_id = hp.hero_id JOIN powers p ON hp.power_id = p.power_id WHERE h.hero_name = p_hero_name AND (p.power_name LIKE '%Fire%' OR p.power_name LIKE '%Heat%'); END // DELIMITER ;
代码说明
- 先修改语句分隔符为
//,避免存储过程内部的分号触发MySQL提前执行 - 输入参数
p_hero_name用来接收要查询的超级英雄名称 - 通过三张表关联(英雄表、英雄-超能力关联表、超能力表),精准匹配目标英雄的所有超能力
- 用
LIKE筛选包含Fire或Heat关键词的超能力,刚好覆盖Fire Control、Fire Resistance、Heat Resistance这类场景 - 无需多余的IF ELSE逻辑,直接返回所有符合条件的结果
调用示例
CALL GetFireThemedPowers('Firebird');
内容的提问来源于stack exchange,提问作者DunkinDont
相关产品推荐
相关产品推荐

