SQL过程语法

时间:2014-11-26 23:17:17

标签: mysql stored-procedures

我试图在MySQL中创建存储过程,但是它给我一个语法错误

这是我的代码:

创建程序

CREATE PROCEDURE video_series_filter (_categoryID bigint, _mentorID bigint, _difficulty smallint, _searchTerm varchar(750), _start int, _record int)

线投掷错误

IF _searchTerm IS NOT NULL
    SET _where = CONCAT("WHERE (s.title LIKE '%"_searchTerm"%' OR s.description LIKE '%"_searchTerm"%') ");
END IF;

不确定为什么它会显示语法错误。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

MySQL IF语句的语法包含强制THEN关键字。

另外,CONCAT()函数的参数之间需要逗号。

IF _searchTerm IS NOT NULL THEN
    SET _where = CONCAT("WHERE (s.title LIKE '%", _searchTerm, "%' OR s.description LIKE '%", _searchTerm, "%') ");
END IF;

有关详细信息,请参阅http://dev.mysql.com/doc/refman/5.6/en/if.html

答案 1 :(得分:0)

CONCAT(或任何函数)的参数必须用逗号分隔:

CONCAT("WHERE (s.title LIKE '%", _searchTerm, "%' OR s.description LIKE '%", _searchTerm, "%') ");