亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

解決mysql結(jié)果包含多行錯(cuò)誤
P粉068174996
P粉068174996 2024-04-04 16:42:59
0
1
617

當(dāng)我執(zhí)行此查詢時(shí),我收到此錯(cuò)誤訊息“錯(cuò)誤代碼:1172。結(jié)果包含多個(gè)行”

CREATE DEFINER=`root`@`localhost` PROCEDURE `un_follow`(
  user_been_following_id int,
  user_following_id int
)
BEGIN
    declare id int;
    select following_id into id from user_following
        where user_been_following_id = user_been_following_id
        and  user_following_id =  user_following_id; 
        
    delete from user_following 
    where following_id = id;
END

id ??是下表的主鍵有幫助嗎?

P粉068174996
P粉068174996

全部回覆(1)
P粉322319601

您的局部變數(shù)與表格列同名。 這樣,您就永遠(yuǎn)不會(huì)將局部變數(shù)與列進(jìn)行比較,而始終將局部變數(shù)與局部變數(shù)本身進(jìn)行比較。

您的查詢需要恰好回傳一行來(lái)提供 id 變數(shù)

select following_id into id from user_following
    where user_been_following_id = user_been_following_id
    and  user_following_id =  user_following_id;

user_been_following_id 和 user_following_id 在所有實(shí)例中都被解釋為局部變量,因此翻譯如下

select following_id into id from user_following
    where 1 = 1
    and  1 = 1;

其中傳回 user_following 的所有行。要解決此問(wèn)題,請(qǐng)重新命名您的局部變量,例如

CREATE DEFINER=`root`@`localhost` PROCEDURE `un_follow`(
  local_user_been_following_id int,
  local_user_following_id int
)
BEGIN
    declare id int;
    select following_id into id from user_following
        where user_been_following_id = local_user_been_following_id
        and  user_following_id =  local_user_following_id; 
    
    delete from user_following 
    where following_id = id;
END

(假設(shè)表 user_following 上沒(méi)有名為 local_user_been_following_id 或 local_user_following_id 的欄位)

另請(qǐng)參閱此處: https://dev.mysql.com/doc/ refman/8.0/en/local-variable-scope.html

#
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板