繁体   English   中英

使用 MySQL 在我的存储过程中找不到语法 1064 错误

[英]Can not find the Syntax 1064 Error in my store procedure using MySQL

我正在创建一个 SP,以便我可以选择我感兴趣的表的字段和第二个参数“ASC”或“DESC”,de SP 将按该字段对表进行排序,也会根据 ASC 或 DESC 对其进行排序关于第二个参数是什么。 但是我找不到语法错误,这是一个常规的 1064 错误! 我在 MySQL 工作台中运行它

DELIMITER $$
CREATE PROCEDURE `PROCEDUREUNO` (IN field VARCHAR(100),IN ordenamiento CHAR(5))
BEGIN
IF field <> ‘’ THEN
SET @orden = concat(‘ORDER BY ’, field,ordenamiento);
ELSE
SET @orden = ‘’;
END IF;
SET @clausula = concat(‘SELECT * FROM Contrataciones ’, @orden);
PREPARE runSQL FROM @clausula;
EXECUTE runSQL;
DEALLOCATE PREPARE runSQL;
END

END $$

您的存储过程声明中有两个错误:

  • 不要使用圆引号'' ,而是使用简单的引号''
  • 您在声明的末尾有两个END关键字
DELIMITER $$
CREATE PROCEDURE `PROCEDUREUNO` (IN field VARCHAR(100),IN ordenamiento CHAR(5))
BEGIN
    IF field <> '' THEN
        SET @orden = CONCAT('ORDER BY ', field,ordenamiento);
    ELSE
        SET @orden = '';
    END IF;

    SET @clausula = CONCAT('SELECT * FROM Contrataciones', @orden);

    PREPARE runSQL FROM @clausula;
    EXECUTE runSQL;
    DEALLOCATE PREPARE runSQL;
END $$

此处查看演示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM