Rumah > Artikel > pangkalan data > Adakah mysql mempunyai gelung for?
Mysql tidak mempunyai gelung for. MySQL tidak menyokong pernyataan gelung Ia menyokong tiga pernyataan gelung: WHILE, REPEAT dan LOOP. Gelung WHILE menyemak ungkapan pada permulaan setiap lelaran penyataan gelung REPEAT, juga dikenali sebagai gelung pasca ujian, menyemak ungkapan selepas melaksanakan penyataan LOOP berulang kali boleh melaksanakan blok kod.
Persekitaran pengendalian tutorial ini: sistem windows10, mysql versi 8.0, komputer Dell G3.
MySQL menyediakan penyataan gelung yang membolehkan anda melaksanakan berulang kali blok kod SQL berdasarkan syarat.
MySQL tidak menyokong pernyataan gelung MySQL hanya menyokong gelung semasa, gelung ulang dan gelung gelung.
MySQL menyediakan penyataan gelung yang membolehkan anda melaksanakan berulang kali blok kod SQL berdasarkan syarat. MySQL tidak menyokong pernyataan gelung Terdapat tiga pernyataan gelung dalam MySQL: WHILE
, REPEAT
dan LOOP
.
Kami akan memeriksa setiap pernyataan gelung dengan lebih terperinci dalam bahagian berikut.
WHILE Loop
WHILE
Sintaks pernyataan adalah seperti berikut:
WHILE expression DO statements END WHILE
WHILE
Gelung setiap kali Ungkapan disemak pada permulaan lelaran. Jika expressionevaluates
ialah TRUE
, MySQL akan melaksanakan pernyataan antara WHILE
dan END WHILE
sehingga expressionevaluates
ialah FALSE
. WHILE
Gelung dipanggil gelung bersyarat praujian kerana ia sentiasa menyemak ungkapan pernyataan sebelum melaksanakannya.
Carta alir berikut menggambarkan pernyataan gelung WHILE
:
Berikut ialah contoh penggunaan pernyataan gelung WHILE
dalam prosedur tersimpan:
DELIMITER $$ DROP PROCEDURE IF EXISTS test_mysql_while_loop$$ CREATE PROCEDURE test_mysql_while_loop() BEGIN DECLARE x INT; DECLARE str VARCHAR(255); SET x = 1; SET str = ''; WHILE x <p>Dalam <code>test_mysql_while_loop</code> prosedur tersimpan di atas: </p>
str
berulang kali sehingga nilai pembolehubah x
lebih besar daripada 5
. Sila ambil perhatian bahawa jika nilai pembolehubah x
tidak dimulakan, maka nilai lalainya ialah NULL
. Oleh itu, keadaan dalam pernyataan gelung WHILE
akan sentiasa TRUE
dan anda akan mempunyai gelung tak tentu, yang tidak dapat diramalkan.
Mari kita uji test_mysql_while_loopstored
memanggil prosedur tersimpan:
CALL test_mysql_while_loop();
Laksanakan pernyataan pertanyaan di atas dan dapatkan keputusan berikut-
mysql> CALL test_mysql_while_loop(); +------------+ | str | +------------+ | 1,2,3,4,5, | +------------+ 1 row in set Query OK, 0 rows affected
REPEAT Gelung
REPEAT
Sintaks pernyataan gelung adalah seperti berikut:
REPEAT statements; UNTIL expression END REPEAT
Pertama, MySQL melaksanakan pernyataan dan kemudian menilai ungkapan penilaian ( expression
). Jika ungkapan (expression
) menilai kepada FALSE
, MySQL akan melaksanakan pernyataan itu berulang kali sehingga ungkapan itu menilai kepada TRUE
.
Oleh kerana pernyataan gelung REPEAT
menyemak ungkapan (expression
) selepas melaksanakan pernyataan, pernyataan gelung REPEAT
juga dipanggil gelung ujian pasca.
Carta alir berikut menggambarkan proses pelaksanaan pernyataan gelung REPEAT
:
Kita boleh menggunakan pernyataan gelung REPEAT
untuk menulis semula test_mysql_while_loop
Proses penyimpanan, gunakan penyataan gelung WHILE
:
DELIMITER $$ DROP PROCEDURE IF EXISTS mysql_test_repeat_loop$$ CREATE PROCEDURE mysql_test_repeat_loop() BEGIN DECLARE x INT; DECLARE str VARCHAR(255); SET x = 1; SET str = ''; REPEAT SET str = CONCAT(str,x,','); SET x = x + 1; UNTIL x > 5 END REPEAT; SELECT str; END$$ DELIMITER ;
Perlu diingat bahawa tiada koma bertitik (UNTIL
) dalam ungkapan ;
.
Laksanakan pernyataan pertanyaan di atas dan dapatkan hasil berikut-
mysql> CALL mysql_test_repeat_loop(); +------------+ | str | +------------+ | 1,2,3,4,5, | +------------+ 1 row in set Query OK, 0 rows affected
LOOP, LEAVE dan LELAR penyataan
Terdapat dua Penyata membenarkan anda mengawal gelung: Pernyataan
LEAVE
digunakan untuk keluar dari gelung serta-merta tanpa menunggu untuk menyemak keadaan. Prinsip kerja pernyataan LEAVE
adalah serupa dengan pernyataan C/C++
dalam PHP, break
, Java dan bahasa lain. Pernyataan ITERATE
membolehkan anda melangkau keseluruhan kod yang tinggal dan memulakan lelaran baharu. Pernyataan ITERATE
adalah serupa dengan pernyataan PHP
dalam C/C++
, Java
, continue
, dsb. MySQL juga mempunyai pernyataan LOOP
, yang boleh melaksanakan blok kod berulang kali, ditambah dengan fleksibiliti menggunakan tag gelung.
Berikut ialah contoh penggunaan pernyataan gelung LOOP
.
CREATE PROCEDURE test_mysql_loop() BEGIN DECLARE x INT; DECLARE str VARCHAR(255); SET x = 1; SET str = ''; loop_label: LOOP IF x > 10 THEN LEAVE loop_label; END IF; SET x = x + 1; IF (x mod 2) THEN ITERATE loop_label; ELSE SET str = CONCAT(str,x,','); END IF; END LOOP; SELECT str; END;
2
,4
,6
等。LOOP
语句之前放置一个loop_label
循环标签。x
的值大于10
,则由于LEAVE
语句,循环被终止。x
的值是一个奇数,ITERATE
语句忽略它下面的所有内容,并开始一个新的迭代。x
的值是偶数,则ELSE
语句中的块将使用偶数构建字符串。执行上面查询语句,得到以下结果 -
mysql> CALL test_mysql_loop(); +-------------+ | str | +-------------+ | 2,4,6,8,10, | +-------------+ 1 row in set Query OK, 0 rows affected
【相关推荐:mysql视频教程】
Atas ialah kandungan terperinci Adakah mysql mempunyai gelung for?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!