今做数据库课程设计时,课设要求利用存储过程实现模糊查询。第一次听到这样的要求感觉很荒谬,会不会是要求写错了。在此我为我的无知感到羞愧。废话不多说,接下来我们讲一下在MYSQL数据库中如何利用存储过程实现模糊查询呢?
假如我们在数据库中建有这样的一个表:
接下来我们直接上存储过程的sql语句:
CREATE PROCEDURE selectGood(in _goodName VARCHAR(20))
BEGIN
SELECT * FROM good where goodName LIKE _goodName;
END
其中:
CREATE PROCEDURE是创建一个存储过程;
selectGood是存储过程的名字;
括号中的in表示入参数,参数名是_goodName,参数的类型是VARCHAR(20);
BEGIN表示开始;
select自然表示简单的查询语句;
end表示结束;
语句基本都将明白了那么我们应该如何使用呢?
如果你的数据库中存在了名字为selectGood的存储过程那么你需要执行下面的语句删除:
DROP PROCEDURE selectGood
如果不存在的话,这个存储过程就完成了我们可以利用下面的语句调用:
CALL selectGood('%小面包%')
执行结果如下:
goodId | goodName | typeId | price | content |
1 | 小面包 | 1 | 33 | 无 |
2 | 小面包 | 1 | 14 | 无 |
3 | 小面包 | 1 | 12 | 无 |