标签 ‘ 存储过程

Mysql 存储过程中使用LIKE的准确方法

在Mysql中成功建立了存储过程,但是运行的时候没有任何反应,代码如下:
delimiter create procedure search
(
idt int
)
BEGIN
SELECT * FROM xx WHERE id LIKE '%idt%';
end

delimiter ;

老规矩,又是一番狂搜。。。唉
找到问题了,’%idt%’ 这样写的话 在存储过程中是属于常量,执行存储过程当然没有数据咯。必须写成如下格式才可以,这样就是变量了:
SELECT * FROM xx WHERE id LIKE CONCAT('%',idt,'%');

  • Mysql 存储过程中使用LIKE的准确方法已关闭评论

Mysql 中建立存储过程的方法 delimiter

按照网上的说法,建立了多次,都提示失败,代码如下:
create procedure search
(
idt int
)
BEGIN
SELECT * FROM xx WHERE id = idt;
end;

总是提示各种错误。。。

Google找了很久,终于找到了准确的方法,原来是要让mysql知道该段命令是否已经结束,可以运行。代码如下:
delimiter create procedure search
(
idt int
)
BEGIN
SELECT * FROM xx WHERE id = idt;
end

delimiter ;

这个命令与存储过程没什么关系吧,呵呵。其实就是告诉mysql解释器,该段命令(存储过程)是否已经结束了,mysql是否可以执行了。默认情况下,delimiter 是分号“;”一执行的话,后面的语句就不执行了,从而出错。使用delimiter就是定义一下命令结束标记,将”;”临时换成其他符号。可以使用”$$”或者”//”。

  • Mysql 中建立存储过程的方法 delimiter已关闭评论

return top