首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQL存储过程不检查where子句并返回整个表

问MYSQL存储过程不检查where子句并返回整个表
EN

Stack Overflow用户
提问于 2014-04-16 04:12:02
回答 2查看 43关注 0票数 0
代码语言:javascript
复制
CREATE DEFINER=`root`@`localhost` PROCEDURE `Viewuser`(IN `userID` VARCHAR(50))
BEGIN
SELECT * FROM  `tbl_userdetails` WHERE `UserID`=userID;
END

在上面的代码中,应该返回给定用户id的用户详细信息。但是它在执行这个存储过程时返回整个表。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-19 07:43:06

找到答案了。表中的字段名不应与变量名相同。这就是问题所在

创建DEFINER=root@localhost PROCEDURE Viewuser(IN ID VARCHAR(50))开始选择* FROM tbl_userdetails,其中UserID=ID;END

这很好用

票数 0
EN

Stack Overflow用户

发布于 2014-04-16 04:14:28

试试这个方法:

代码语言:javascript
复制
mysql> delimiter //

mysql> CREATE PROCEDURE simpleproc (OUT param1 INT)
    -> BEGIN
    ->   SELECT COUNT(*) INTO param1 FROM t;
    -> END//
Query OK, 0 rows affected (0.00 sec)

mysql> delimiter ;

mysql> CALL simpleproc(@a);
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @a;
+------+
| @a   |
+------+
| 3    |
+------+
1 row in set (0.00 sec)

https://dev.mysql.com/doc/refman/5.5/en/create-procedure.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23099834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档