CREATE DEFINER=`root`@`localhost` PROCEDURE `Viewuser`(IN `userID` VARCHAR(50))
BEGIN
SELECT * FROM `tbl_userdetails` WHERE `UserID`=userID;
END
在上面的代码中,应返回给定用户ID的用户详细信息。但它在执行此存储过程时返回整个表。
答案 0 :(得分:0)
尝试这种方法:
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 强>
答案 1 :(得分:0)
得到了答案。表中的字段名称不应与变量名称相同。这就是问题
创建DEFINER = root
@ localhost
程序Viewuser
(IN ID
VARCHAR(50))
开始
SELECT * FROM tbl_userdetails
WHERE UserID
= ID;
END
这很好用