mySQL存储过程错误

mySQL存储过程错误,mysql,mysql-workbench,Mysql,Mysql Workbench,我试图在我的存储mySQL过程中使用if语句,但是当我试图在mySQL workbench中创建它时,我得到了以下错误error 1064:您的SQL语法中有一个错误;检查与MySQL服务器版本对应的手册,以了解在“数据库”附近使用的正确语法。“表”中的date=dateIn 代码如下: DELIMITER $$ CREATE DEFINER=`rates_d_db` PROCEDURE `byDate`(in dateIn VARCHAR(255),in action VARCHAR(255

我试图在我的存储mySQL过程中使用if语句,但是当我试图在mySQL workbench中创建它时,我得到了以下错误
error 1064:您的SQL语法中有一个错误;检查与MySQL服务器版本对应的手册,以了解在“数据库”附近使用的正确语法。“表”中的date=dateIn

代码如下:

DELIMITER $$

CREATE DEFINER=`rates_d_db` PROCEDURE `byDate`(in dateIn VARCHAR(255),in action VARCHAR(255))
BEGIN

IF action = "edit" THEN EDIT `database`.`table` WHERE date=dateIn;

ELSE SELECT * FROM `database`.`table` WHERE date=dateIn;

END IF;

END$$
我对存储过程是新手,所以这可能是一个非常愚蠢的错误


先走一步

日期
是mySQL中的一个重要参数。您还必须用反勾号将其包装起来。

这是您的过程的正确版本

DELIMITER $$

CREATE DEFINER=`rates_d_db` PROCEDURE `byDatee`(in dateIn VARCHAR(255),in action VARCHAR(255))
       BEGIN
           IF action = "edit" THEN 
                -- I used select below as i don't know what you want in edit either alter table or update table
               SELECT * FROM `database`.`table` WHERE date=dateIn;    
           ELSE
                SELECT * FROM `database`.`table` WHERE date=dateIn;
           END IF;
END $$

也许我做错了,但这就是我所做的,仍然没有运气
'table.'column'
,其中的'是反勾号。您将
日期
包装在
中,其中日期=dateIn
包装在反勾号中?我做了是的,就像这样
'date'=dateIn
@user您需要使用反勾号'我做了,如上所述,如果我在注释部分使用反勾号,它会突出显示文本,因此我不能在这里使用它,但我使用的是这些->`您想在编辑中使用的,这是错误的(编辑
数据库
其中date=dateIn;)。您想在这里更新还是更改语句。