我正在尝试编写一个存储过程,该过程接受一个值,然后将其与表值进行比较。例如

该过程接受一个varchar(30)值,说“ RED”,因为c_title然后将其与名为campaign的表中的所有标题进行比较,如果匹配,则使用某个值更新某些列。

基本上,您将如何比较mysql中字符串值的两个变量?

我已经尝试过使用LIKE,IN和=的不同比较方法

CREATE PROCEDURE sp_finish_campaign(in c_title varchar(30))
Begin
Update campaign
Set TITLE = "Hello"
where TITLE = c_title;
END


新标题值应该是您好,其中TITLE与输入值匹配

但我收到语法错误的错误代码1064。

感谢任何反馈。谢谢

最佳答案

您需要以分号结束更新,但首先重新定义将由存储过程使用的定界符:

DELIMITER // ;
CREATE PROCEDURE sp_finish_campaign(IN c_title varchar(30))
BEGIN
    UPDATE campaign
    SET TITLE = 'Hello'
    WHERE TITLE = c_title;
END //


另外,在MySQL中定义字符串文字时,应尝试使用单引号。双引号很可能也可以使用,但它们主要用于表示数据库对象(例如数据库,表和列名),而不是字符串。

关于mysql - MySQL存储过程将参数输入与表值进行比较,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58601762/

10-11 05:14
查看更多