这种语法有什么问题?
mysql 5.5,phpmyadmin 3.4
delimiter ;;
create procedure foo(a text, b int, c text)
begin
select * from table_a where attribute1 like %a%
and attribute2 = b
and attribute3 like %c%
end
;;
phpmyadmin 在第 1 行告诉我语法错误,但无论如何它似乎都不起作用。
这种语法有什么问题?
mysql 5.5,phpmyadmin 3.4
delimiter ;;
create procedure foo(a text, b int, c text)
begin
select * from table_a where attribute1 like %a%
and attribute2 = b
and attribute3 like %c%
end
;;
phpmyadmin 在第 1 行告诉我语法错误,但无论如何它似乎都不起作用。
在您的情况下,您甚至不需要更改DELIMITER
和使用BEGIN ... END
块。您的程序可能看起来像
CREATE PROCEDURE foo(a TEXT, b INT, c TEXT)
SELECT *
FROM table_a
WHERE attribute1 LIKE CONCAT('%', a, '%')
AND attribute2 = b
AND attribute3 LIKE CONCAT('%', c, '%');
这是SQLFiddle演示
缺少引号。
delimiter ;;
create procedure foo(a text, b int, c text)
begin
select * from table_a where attribute1 like concat('%', a,' %')
and attribute2 = b
and attribute3 like concat('%', c,' %');
end;;