MySQL过程中出现错误
我在以下过程中遇到错误MySQL过程中出现错误,mysql,sql,stored-procedures,procedure,Mysql,Sql,Stored Procedures,Procedure,我在以下过程中遇到错误 DELIMITER // DROP PROCEDURE IF EXISTS getDestaque // CREATE PROCEDURE getDestaque( OUT v_id_imovel_1 INT, OUT v_titulo_1 VARCHAR(200), OUT v_cidade_1 VARCHAR(120), OUT v_categoria_1 VARCHAR(100), OUT v_foto_1 VARCHAR(100), OUT v_id_imo
DELIMITER //
DROP PROCEDURE IF EXISTS getDestaque //
CREATE PROCEDURE getDestaque(
OUT v_id_imovel_1 INT,
OUT v_titulo_1 VARCHAR(200),
OUT v_cidade_1 VARCHAR(120),
OUT v_categoria_1 VARCHAR(100),
OUT v_foto_1 VARCHAR(100),
OUT v_id_imovel_2 INT,
OUT v_titulo_2 VARCHAR(200),
OUT v_cidade_2 VARCHAR(120),
OUT v_categoria_2 VARCHAR(100),
OUT v_foto_2 VARCHAR(100)
)
BEGIN
SELECT I.id_imovel INTO v_id_imovel_1,
I.titulo INTO v_titulo_1,
C.cidade INTO v_cidade_1,
CAT.categoria INTO v_categoria_1,
IFT.foto INTO v_foto_1
FROM imoveis AS I
INNER JOIN cidades AS C ON I.id_cidade = C.id_cidade
INNER JOIN categorias AS CAT ON I.id_categoria = CAT.id_categoria
INNER JOIN imoveis_fotos AS IFT ON I.id_imovel = IFT.id_imovel AND IFT.principal = 1
WHERE I.destaque_index = 1
ORDER BY RAND() LIMIT 1;
SELECT I.id_imovel INTO v_id_imovel_2,
I.titulo INTO v_titulo_2,
C.cidade INTO v_cidade_2,
CAT.categoria INTO v_categoria_2,
IFT.foto INTO v_foto_2
FROM imoveis AS I
INNER JOIN cidades AS C ON I.id_cidade = C.id_cidade
INNER JOIN categorias AS CAT ON I.id_categoria = CAT.id_categoria
INNER JOIN imoveis_fotos AS IFT ON I.id_imovel = IFT.id_imovel AND IFT.principal = 1
WHERE I.destaque_index = 1 AND I.id_imovel <> v_id_imovel_1
ORDER BY RAND() LIMIT 1;
UPDATE imoveis SET destaque_index_view = destaque_index_view+1 WHERE id_imovel = v_id_imovel_1 OR id_imovel = v_id_imovel_2;
END
//
DELIMITER ;
分隔符//
删除过程(如果存在)getDestaque//
创建过程getDestaque(
输出v_id_imovel_1 INT,
输出v_titulo_1 VARCHAR(200),
外v_cidade_1 VARCHAR(120),
OUT v_categoria_1 VARCHAR(100),
输出v_foto_1 VARCHAR(100),
输出v_id_imovel_2 INT,
输出v_titulo_2 VARCHAR(200),
外v_cidade_2 VARCHAR(120),
OUT v_categoria_2 VARCHAR(100),
OUT v_foto_2 VARCHAR(100)
)
开始
将I.id_imovel选择为v_id_imovel_1,
我把提图罗变成了提图罗1,
C.cidade变成v_cidade_1,
类别A分为v_类别A_1,
如果将foto转换为v_foto_1
从伊莫维斯到我
在I.id\u cidade=C.id\u cidade上作为C的内部连接cidade
在I.id\U categoria=CAT.id\U categoria上作为CAT的内部联接categorias
内部连接imoveis_fotos作为I.id_imovel=IFT.id_imovel和IFT.principal=1上的IFT
其中I.destaque_指数=1
按兰德顺序()限制1;
将I.id_imovel选择为v_id_imovel_2,
我把提图罗变成了提图罗2,
C.cidade变成v_cidade_2,
类别A分为v_类别A_2,
如果将foto转换为v_foto_2
从伊莫维斯到我
在I.id\u cidade=C.id\u cidade上作为C的内部连接cidade
在I.id\U categoria=CAT.id\U categoria上作为CAT的内部联接categorias
内部连接imoveis_fotos作为I.id_imovel=IFT.id_imovel和IFT.principal=1上的IFT
其中I.destaque_index=1和I.id_imove_id_imove_1
按兰德顺序()限制1;
更新imoveis SET destaque_index_view=destaque_index_view+1,其中id_imovel=v_id_imovel_1或id_imovel=v_id_imovel_2;
结束
//
定界符;
无法工作且PhpMyAdmin没有向我显示错误,有人可以帮助我吗?您应该在每个SELECT查询中仅使用关键字
SELECT value1, value2 INTO out_value1, out_value2 FROM some_table;
这应该起作用:
DELIMITER //
DROP PROCEDURE IF EXISTS getDestaque //
CREATE PROCEDURE getDestaque(
OUT v_id_imovel_1 INT,
OUT v_titulo_1 VARCHAR(200),
OUT v_cidade_1 VARCHAR(120),
OUT v_categoria_1 VARCHAR(100),
OUT v_foto_1 VARCHAR(100),
OUT v_id_imovel_2 INT,
OUT v_titulo_2 VARCHAR(200),
OUT v_cidade_2 VARCHAR(120),
OUT v_categoria_2 VARCHAR(100),
OUT v_foto_2 VARCHAR(100)
)
BEGIN
SELECT I.id_imovel, I.titulo, C.cidade, CAT.categoria, IFT.foto INTO v_id_imovel_1,
v_titulo_1,
v_cidade_1,
v_categoria_1,
v_foto_1
FROM imoveis AS I
INNER JOIN cidades AS C ON I.id_cidade = C.id_cidade
INNER JOIN categorias AS CAT ON I.id_categoria = CAT.id_categoria
INNER JOIN imoveis_fotos AS IFT ON I.id_imovel = IFT.id_imovel AND IFT.principal = 1
WHERE I.destaque_index = 1
ORDER BY RAND() LIMIT 1;
SELECT I.id_imovel, I.titulo, C.cidade, CAT.categoria, IFT.foto INTO v_id_imovel_2,
v_titulo_2,
v_cidade_2,
v_categoria_2,
v_foto_2
FROM imoveis AS I
INNER JOIN cidades AS C ON I.id_cidade = C.id_cidade
INNER JOIN categorias AS CAT ON I.id_categoria = CAT.id_categoria
INNER JOIN imoveis_fotos AS IFT ON I.id_imovel = IFT.id_imovel AND IFT.principal = 1
WHERE I.destaque_index = 1 AND I.id_imovel <> v_id_imovel_1
ORDER BY RAND() LIMIT 1;
UPDATE imoveis SET destaque_index_view = destaque_index_view+1 WHERE id_imovel = v_id_imovel_1 OR id_imovel = v_id_imovel_2;
END
//
DELIMITER ;
分隔符//
删除过程(如果存在)getDestaque//
创建过程getDestaque(
输出v_id_imovel_1 INT,
输出v_titulo_1 VARCHAR(200),
外v_cidade_1 VARCHAR(120),
OUT v_categoria_1 VARCHAR(100),
输出v_foto_1 VARCHAR(100),
输出v_id_imovel_2 INT,
输出v_titulo_2 VARCHAR(200),
外v_cidade_2 VARCHAR(120),
OUT v_categoria_2 VARCHAR(100),
OUT v_foto_2 VARCHAR(100)
)
开始
选择I.id_imovel、I.titulo、C.cidade、CAT.categoria、IFT.foto进入v_id_imovel_1,
v_titulo_1,
v_cidade_1,
v_categoria_1,
v_foto_1
从伊莫维斯到我
在I.id\u cidade=C.id\u cidade上作为C的内部连接cidade
在I.id\U categoria=CAT.id\U categoria上作为CAT的内部联接categorias
内部连接imoveis_fotos作为I.id_imovel=IFT.id_imovel和IFT.principal=1上的IFT
其中I.destaque_指数=1
按兰德顺序()限制1;
选择I.id_imovel、I.titulo、C.cidade、CAT.categoria、IFT.foto进入v_id_imovel 2,
v_titulo_2,
v_cidade_2,
v_categoria_2,
v_foto_2
从伊莫维斯到我
在I.id\u cidade=C.id\u cidade上作为C的内部连接cidade
在I.id\U categoria=CAT.id\U categoria上作为CAT的内部联接categorias
内部连接imoveis_fotos作为I.id_imovel=IFT.id_imovel和IFT.principal=1上的IFT
其中I.destaque_index=1和I.id_imove_id_imove_1
按兰德顺序()限制1;
更新imoveis SET destaque_index_view=destaque_index_view+1,其中id_imovel=v_id_imovel_1或id_imovel=v_id_imovel_2;
结束
//
定界符;