这种语法有什么问题?
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行告诉我错误的语法,但无论如何它似乎都不起作用。
答案 0 :(得分:2)
在您的情况下,您甚至不需要更改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 演示
答案 1 :(得分:0)
缺少报价。
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;;