Selesaikan ralat bahawa hasil mysql mengandungi berbilang baris
P粉068174996
P粉068174996 2024-04-04 16:42:59
0
1
446

Apabila saya melaksanakan pertanyaan ini, saya mendapat mesej ralat ini "Kod ralat: 1172. Hasilnya mengandungi berbilang baris"

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
Adakah membantu

id ialah kunci utama jadual di bawah?

P粉068174996
P粉068174996

membalas semua(1)
P粉322319601

Pembolehubah setempat anda mempunyai nama yang sama dengan lajur jadual. Dengan cara ini anda tidak pernah membandingkan pembolehubah tempatan dengan lajur, tetapi sentiasa dengan pembolehubah tempatan itu sendiri.

Pertanyaan anda perlu kembali tepat satu baris untuk memberikan pembolehubah id

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 dan user_following_id ditafsirkan sebagai pembolehubah setempat dalam semua keadaan dan oleh itu diterjemahkan seperti berikut

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

Semua baris tempat pengguna_pengikut dikembalikan. Untuk membetulkannya, namakan semula pembolehubah setempat anda seperti

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

(dengan mengandaikan tiada lajur bernama local_user_been_following_id atau local_user_following_id pada jadual user_following)

Lihat juga di sini: https://dev.mysql.com/doc/ refman/8.0/ms/local-variable-scope.html

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan