Rumah > pangkalan data > tutorial mysql > Bagaimana untuk menggunakan jika pernyataan bersarang dalam prosedur disimpan MySQL

Bagaimana untuk menggunakan jika pernyataan bersarang dalam prosedur disimpan MySQL

WBOY
Lepaskan: 2023-05-26 12:07:34
ke hadapan
1863 orang telah melayarinya

1 Pengenalan kepada pernyataan if

Pernyataan if ialah pernyataan struktur bercabang yang melakukan operasi berbeza berdasarkan syarat. Pernyataan if biasanya terdiri daripada ungkapan bersyarat dan satu atau lebih pernyataan. Prasyarat untuk melaksanakan pernyataan dalam pernyataan if ialah nilai ungkapan bersyarat adalah benar, jika tidak blok pernyataan if akan dilangkau. Sintaks pernyataan

if adalah seperti berikut:

if(condition)then
    statement;
else
    statement;
end if;
Salin selepas log masuk

di mana syarat ialah ungkapan bersyarat dan pernyataan ialah pernyataan SQL yang perlu dilaksanakan.

2. Pengenalan kepada pernyataan bersarang jika

Pernyataan jika bersarang berada dalam blok pernyataan if, dengan satu atau lebih blok pernyataan bersarang di dalamnya melakukan operasi yang berbeza berdasarkan keadaan yang berbeza. Sintaks pernyataan if bersarang adalah seperti berikut:

if(condition1)then
    statement;
    if(condition2)then
        statement;
    else
        statement;
    end if;
else if(condition3)then
    statement;
else
    statement;
end if;
Salin selepas log masuk

Antaranya, syarat1 ialah ungkapan bersyarat bagi tahap pertama jika keadaan2 ialah ungkapan bersyarat bagi tahap kedua jika; else if ;statement ialah pernyataan SQL yang perlu dilaksanakan.

3. Contoh pernyataan nested if

Berikut ialah contoh prosedur tersimpan menggunakan pernyataan nested if:

delimiter //
create procedure test_if_nested(
    in student_name varchar(50),
    out result_msg varchar(50)
)
begin
    declare student_score int;
    select score into student_score from student where name = student_name;
    if(student_score >= 90)then
        set result_msg = '优秀';
        if(student_score = 100)then
            set result_msg = concat(result_msg, ',满分');
        end if;
    else if(student_score >= 60)then
        set result_msg = '及格';
    else
        set result_msg = '不及格';
    end if;
end //
delimiter ;
Salin selepas log masuk

Prosedur tersimpan ini ialah digunakan Nilaikan prestasi pelajar berdasarkan markah mereka:

  1. Jika markah lebih daripada atau sama dengan 90 mata, ia adalah cemerlang, jika 100 mata, "skor penuh" ditambah ;

  2. Jika markah lebih daripada atau sama dengan 60 mata, ia adalah satu hantaran; , memang gagal.

  3. 4. Panggilan prosedur tersimpan

Prosedur tersimpan boleh dipanggil melalui arahan panggilan, sintaksnya adalah seperti berikut:

call procedure_name(argument1, argument2, ...);
Salin selepas log masuk
Di mana, procedure_name ialah nama prosedur tersimpan, argument1, argument2, dsb. ialah parameter prosedur tersimpan.

Sebagai contoh, untuk memanggil prosedur tersimpan di atas, anda boleh menggunakan arahan berikut:

call test_if_nested('张三', @result_msg);
select @result_msg as result;
Salin selepas log masuk

Masukkan parameter nama pelajar dan keluarkan hasilnya melalui parameter keluar. Keputusannya adalah seperti berikut:

+-------------+
| result      |
+-------------+
| 及格       |
+-------------+
Salin selepas log masuk

Melalui kaedah panggilan di atas, kita boleh mendapatkan markah pelajar berdasarkan nama mereka dan menilai gred pelajar berdasarkan markah.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan jika pernyataan bersarang dalam prosedur disimpan MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan