gpt4 book ai didi

mysql - 错误代码 : 1242. 子查询返回超过 1 行 - 函数

转载 作者:行者123 更新时间:2023-11-29 19:40:44 25 4
gpt4 key购买 nike

谁能帮我解决这个问题吗?

DROP FUNCTION IF EXISTS dislike;

DELIMITER //
CREATE FUNCTION dislike(disliked_id int(11)) RETURNS CHAR
BEGIN
DECLARE disliked_songs CHAR;

IF disliked_id = 1 THEN
SET disliked_songs = (SELECT song_title from songs
where like_flag IN (SELECT like_flag from songs where like_flag= 1));

ELSE
SET disliked_songs = (SELECT song_title from songs
where like_flag IN (SELECT like_flag from songs where like_flag= 0));

END IF;

RETURN disliked_songs;
END;
//
DELIMITER ;

select dislike(1);

我试图调用该函数,但这样做会返回错误

最佳答案

子查询返回多行。您需要返回单个值。有多种方法:

  • 使用min()max()
  • 使用限制
  • 使用group_concat()

类似这样的事情:

SELECT disliked_songs := group_concat(song_title )
FROM songs
WHERE like_flag = 1;

我不确定这有什么用处。如果表 songs 有多于几行,您还会面临字符串溢出的风险。

我怀疑您希望在子查询中的某个位置使用disliked_id

关于mysql - 错误代码 : 1242. 子查询返回超过 1 行 - 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41370940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com