带有 SELECT 的 MySQL 过程返回整个表

标签 mysql procedures

我尝试编写一个存储过程,在表中查找用户并返回他。 但该过程总是返回整个表。

DELIMITER //
DROP PROCEDURE IF EXISTS `login`
CREATE PROCEDURE `login`(IN login VARCHAR(20), IN password VARCHAR(32))
BEGIN
SELECT * FROM `users` WHERE `login` = login AND `password` = password;
END
//
DELIMITER ;

出了什么问题?

最佳答案

尝试更改参数名称

DROP PROCEDURE IF EXISTS `login`;
CREATE PROCEDURE `login`(IN alogin VARCHAR(20), IN apassword VARCHAR(32))
SELECT * FROM `users` WHERE `login` = alogin AND `password` = apassword;

答,因为它是一个单语句 SP dith BEGIN...END block ,不需要更改 DELIMITER

关于带有 SELECT 的 MySQL 过程返回整个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17188495/

相关文章:

mysql - 创建联接以显示 T1 中不在 T2 中的一列的值,并进行一些比较

mysql - 在 MySQL 存储过程中使用用户定义变量设置表名

mysql - ASP、Mysql & 大小写敏感度突然坏了

php - 向数据库发送查询时遇到问题

mysql - 在mysql中插入一个计数过程

fortran - 类型绑定(bind)过程作为参数

vbscript - 解析嵌入在 VBScript (QTP) 中的 XML

MySQL 不会创建我的建模数据库

php - 产品服务器上的表怎么会是 "crashed"呢?

php - 如何在PHP中从数据库中编辑/删除存储的数据