我正在上大学,发现在创建存储过程以删除用户时遇到了一些麻烦。我需要检查用户是否具有特定角色,以便决定删除后的其他操作。
主要思想是输入昵称作为参数,使用该电子邮件的用户将被删除。所有这些都很好,并且可以使用简单的“如果存在用户名,则删除用户”查询。我明白了。
但是我有3个角色,并且如果使用这些角色之一创建用户,那么该用户也会插入到该表中。
CREATE DEFINER=`root`@`localhost` PROCEDURE `deleteUser`(
IN Nickname varchar(45))
BEGIN
DECLARE `Host` CHAR(14) DEFAULT '@\'localhost\'';
DECLARE `Gmail` CHAR(14) DEFAULT '@\'gmail.com\'';
SET `Username`:= CONCAT(`Nickname`,`Host`);
SET `Email`:= CONCAT(`Nickname`,`Gmail`);
IF ("`Username` is investigador")
Delete user where Gmail = Email from table Investigadores
DROP USER IF EXISTS `Username`;
END
我要寻找的行为如下: -调用deleteUser存储过程 -从mySQL删除用户 -如果用户具有“调查员”角色,则删除该用户所在的行
但是如何在IF语句中进行验证?