У меня быстрый вопрос о MySql.У меня есть эта простая процедура хранения, которую я хотел бы сделать CALL для двух процедур хранения, когда условие выполнено.
Переменной @SDOuser назначается идентификатор пользователя, когда уровень доступа равен 10, а отметка времени оценивается для входа в систему.время между сейчас и 2 секундами назад.Получив этот набор, я хочу использовать его в качестве условия для своего блока IF.Здесь кроется проблема, она работает нормально, когда первый блок остается ИСТИНА, а ничего не следует.Но мне нужны пользователи, у которых уровень доступа меньше 10, и, похоже, это не отменяет условие, чтобы добраться до этого.
Вот код:
DROP PROCEDURE `getPositionGrid`//
CREATE DEFINER=<some name> PROCEDURE `getPositionGrid`()
BEGIN
set @SDOuser = (SELECT DISTINCT(uu.uu_id) FROM tbl_logins ul
INNER JOIN tbl_users uu
ON ul.ul_username = uu.uu_email
inner join tbl_access_level al
on al.al_id = uu.al_id
inner join tbl_positions up
on up.up_id = uu.up_id
inner join tbl_departments ud
on up.ud_id = ud.ud_id
WHERE ul.ul_created BETWEEN NOW() - INTERVAL 2 SECOND AND NOW());
set @CurrUser = (select uu_id from tbl_users where al_id = 10 AND uu_id = @SDOuser);
set @CurrUser1 = (select uu_id from tbl_users where al_id < 10 AND uu_id != @SDOuser);
IF(@CurrUser) THEN
BEGIN
CALL getPositionGridSDO();
END;
END IF;
IF(@CurrUser1) THEN
BEGIN
CALL getPositionGridALL();
END;
END IF;
END
//