[Err] 1242 - Subquery returns more than 1 row

你的名字 2022-07-12 07:05 251阅读 0赞

1、错误描述

  1. [SQL]SELECT queryStuName(2016010101);
  2. [Err] 1242 - Subquery returns more than 1 row

2、错误原因

  1. BEGIN
  2. DECLARE stuName VARCHAR(100);
  3. SET stuName = (SELECT stu_name FROM t_student_info WHERE stu_no = stu_no);
  4. RETURN stuName;
  5. END
  6. SELECT queryStuName(2016010101);
  7. 由于字段名和参数名一样,这样就会导致查询语句默认为字段名=字段名,查询出来的结果为多条

3、解决办法

  1. DROP FUNCTION IF EXISTS `queryStuName`;
  2. CREATE DEFINER = `root`@`localhost` FUNCTION `queryStuName`(`stuNo` int)
  3. RETURNS varchar(100)
  4. BEGIN
  5. DECLARE stuName VARCHAR(100);
  6. SELECT stu_name FROM t_student_info WHERE stu_no = stuNo INTO stuName;
  7. RETURN stuName;
  8. END;

发表评论

表情:
评论列表 (有 0 条评论,251人围观)

还没有评论,来说两句吧...

相关阅读