Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL过程中出现错误_Mysql_Sql_Stored Procedures_Procedure - Fatal编程技术网

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;
结束
//
定界符;