Rumah >pangkalan data >tutorial mysql >Cara menggunakan fungsi kawalan aliran MySQL
Dalam MySQL, fungsi kawalan proses merujuk kepada pernyataan yang boleh mengawal aliran pelaksanaan prosedur atau fungsi yang disimpan. Berikut ialah beberapa fungsi kawalan proses yang biasa digunakan:
mencapai kesan IF……ELSE…….
# 如果expr1为true,则返回expr2,否则返回expr3 IF(expr1,expr2,expr3)
Dapat dilihat bahawa fungsi IF sangat serupa dengan operator ternary, seperti:
// 比较最大数 int a=10; int b=5; // 比较 int bigNum=a>b?a:b;
Iaitu, antara tiga parameter fungsi IF, expr1 ialah ungkapan bersyarat , dan keputusan akhir adalah benar atau salah, jika keadaan adalah benar (benar), expr2 dikembalikan, jika keadaan tidak benar (salah), expr3 dikembalikan. Contoh:
SELECT IF(10>5,10,5) AS bigNum;
juga mencapai kesan IF……ELSE……, yang bersamaan dengan varian fungsi IF.
# 如果expr1不为NULL,则返回expr1,否则返回expr2 IFNULL(expr1,expr2)
menukar ungkapan bersyarat asal menjadi satu yang menentukan sama ada expr1 adalah null Jika ia bukan null, ia adalah dirinya sendiri (expr1 Jika ia kosong, ia adalah expr2.
SELECT IFNULL(null,'不空') AS notNull
).
Bersamaan dengan fungsi IF
SELECT IF(null IS NULL,null,'不空') AS notNull
untuk menentukan sama ada expr1 kosong, jika ia kosong (benar) ia memaparkan expr2, jika ia tidak kosong (palsu) ia memaparkan expr3
Fungsi case mempunyai dua kesan berbeza
switch case
Ia bersamaan dengan kesan suis case di java. Iaitu, nilai ungkapan pembolehubah dalam suis dibandingkan dengan pemalar di belakang kes itu.
int week=3; switch (week){ case 1: System.out.println("星期一"); break; case 2: System.out.println("星期二"); break; case 3: System.out.println("星期三"); break; case 4: System.out.println("星期四"); break; case 5: System.out.println("星期五"); break; case 6: System.out.println("星期六"); break; case 7: System.out.println("星期日"); break; default: System.out.println("非法数据"); break; }
dinyatakan dalam SQL:
# NOW()函数用于获取当前日期和时间, # WEEKDAY(date)函数,表示返回date对应的工作日索引, # 因为索引从0开始,所以加1;也可以不加1,将when的常量改为工作日索引也可 SELECT CASE WEEKDAY(NOW())+1 WHEN 1 THEN '星期一' WHEN 2 THEN '星期二' WHEN 3 THEN '星期三' WHEN 4 THEN '星期四' WHEN 5 THEN '星期五' WHEN 6 THEN '星期六' WHEN 7 THEN '星期日' ELSE '非法数据' END AS `week`;
Struktur fungsi
Kes Pembolehubah (medan) atau ungkapan yang akan dinilai
apabila pemalar 1 maka nilai 1 (atau pernyataan 1) untuk dipaparkan;
apabila pemalar 2 maka nilai 2 (atau pernyataan 2) untuk dipaparkan;
.....
lain kepada Nilai yang dipaparkan n atau pernyataan n;
tamat
Nota:
berbeza daripada java, tulis huruf kecil terus dan bukannya suis, dan tiada kurungan kerinting
Tambah nilai pemalar terus selepas tanpa menulis titik bertindih Gunakan kemudian
Jika terdapat nilai yang dipaparkan selepas itu, tidak ada. perlu menambah koma bertitik; jika penyataan ditambah selepas itu, koma bertitik perlu ditambah.
apabila……maka……
Lainnya ialah lain.
berakhir dengan penghujung
adalah serupa dengan berbilang jika penghakiman dalam java.
int grade=87; if (grade>=90){ System.out.println("优秀"); }else if (grade>=80){ System.out.println("良好"); }else if (grade>=70){ System.out.println("一般"); }else if (grade>=60){ System.out.println("及格"); }else { System.out.println("不及格"); }
dinyatakan dalam sql:
SELECT id,`name`,chinese, CASE WHEN chinese>=90 THEN '优秀' WHEN chinese>=80 THEN '良好' WHEN chinese>=70 THEN '一般' WHEN chinese>=60 THEN '及格' ELSE '不及格' END AS `rank` FROM student
Struktur fungsi:
kes
apabila keadaan 1 akan dipaparkan Nilai 1 atau pernyataan 1;
apabila keadaan 2 maka nilai 2 atau pernyataan 2 untuk dipaparkan;
......
nilai n lain atau pernyataan n untuk dipaparkan
tamat
Nota:
Tiada syarat demi kes
apabila diikuti dengan syarat, hasilnya benar atau false; syarat itu dipenuhi Laksanakan kemudian dan paparkan nilai atau pernyataan berikut
Begitu juga, jika terdapat nilai yang dipaparkan selepas itu, tidak perlu menambah koma bertitik; kenyataan selepas itu, koma bertitik diperlukan .
Atas ialah kandungan terperinci Cara menggunakan fungsi kawalan aliran MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!