我正在尝试编写一个存储过程,该过程接受一个值,然后将其与表值进行比较。例如
该过程接受一个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/