为什么在 mysql 结果中显示错误由多行组成?

Why show error in mysql result consisted of more than one row?

我在 Whosebug 中显示了很多问题和答案,但我找不到此类问题的解决方案

USE `student`;  
DROP procedure IF EXISTS `useOUT`;  
DELIMITER $$ USE`student`$$ CREATE DEFINER=`root`@`localhost`  PROCEDURE `useOUT`(in in_name varchar(15),out in_dept varchar(15))  
BEGIN  
select  dept into in_dept from info where nam=in_name;  
END$$  
DELIMITER ;

我的table

ID ।南।部门

1 ।萨基卜। cse।

2 ।萨基卜।数学।

当我给 sakib 然后显示 "Result consisted of more than one row" 虽然我使用了 DISTINCTROW,但显示相同的错误 我有一个疑问,是否可以只用主键(比如where id=in_id)?

如果您的程序检查 "sakib" 是否已经存在,那么您可以使用 "limit 1":

select  dept into in_dept from info where nam=in_name LIMIT 1

出现一次就知道它存在:)

DISTINCT 只给你不同的行。结果你需要一行。所以试试这个

SELECT dept into in_dept FROM info
   WHERE id IN ( SELECT  MIN(id)
                        FROM info where nam=in_name
             );