gpt4 book ai didi

sql - 如何从MySQL存储过程的多重选择中仅返回一个记录集?

转载 作者:行者123 更新时间:2023-11-29 14:57:47 25 4
gpt4 key购买 nike

这是我的SProcedure

DELIMITER $$

DROP PROCEDURE IF EXISTS `etracking`.`validarAcceso` $$
CREATE PROCEDURE `etracking`.`validarAcceso` (IN pusuario VARCHAR(30),IN ppassword VARCHAR(10))
BEGIN

DECLARE encontrado INT;
SET encontrado = 0;
IF encontrado = 0 THEN
SELECT usuarios_distribuidores.nombre, usuarios_distribuidores.apellido1,
usuarios_distribuidores.apellido2, distribuidores.nombre, count(encontrado) FROM
usuarios_distribuidores INNER JOIN distribuidores ON
distribuidores.iddistribuidor = usuarios_distribuidores.iddistribuidor
WHERE email = pusuario AND password = ppassword;
END IF;

IF encontrado = 0 THEN
SELECT * FROM usuarios_centro_acopio WHERE email = pusuario AND password = ppassword;

END IF;

IF encontrado = 0 THEN
SELECT * FROM usuarios_admin WHERE email = pusuario AND password = ppassword;
END IF;

END $$

DELIMITER ;

最佳答案

将查询放在相同的条件下,以便您可以使用union all:

IF encontrado = 0 THEN

SELECT usuarios_distribuidores.nombre, usuarios_distribuidores.apellido1,
usuarios_distribuidores.apellido2, distribuidores.nombre, count(encontrado) FROM
usuarios_distribuidores INNER JOIN distribuidores ON
distribuidores.iddistribuidor = usuarios_distribuidores.iddistribuidor
WHERE email = pusuario AND password = ppassword;

UNION ALL

SELECT * FROM usuarios_centro_acopio WHERE email = pusuario AND password = ppassword;

UNION ALL

SELECT * FROM usuarios_admin WHERE email = pusuario AND password = ppassword;

END IF;

关于sql - 如何从MySQL存储过程的多重选择中仅返回一个记录集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4119258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com