Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara mengatur loop WHILE dengan pernyataan IF di MySQL?

Saya telah menemukan bahwa Anda tidak dapat memiliki persyaratan di luar prosedur tersimpan di mysql. Inilah sebabnya mengapa kesalahan sintaks. Segera setelah saya memasukkan kode yang saya butuhkan di antara

BEGIN
SELECT MONTH(CURDATE()) INTO @curmonth;
SELECT MONTHNAME(CURDATE()) INTO @curmonthname;
SELECT DAY(LAST_DAY(CURDATE())) INTO @totaldays;
SELECT FIRST_DAY(CURDATE()) INTO @checkweekday;
SELECT DAY(@checkweekday) INTO @checkday;
SET @daycount = 0;
SET @workdays = 0;

  WHILE(@daycount < @totaldays) DO
    IF (WEEKDAY(@checkweekday) < 5) THEN
      SET @workdays = @workdays+1;
    END IF;
    SET @daycount = @daycount+1;
    SELECT ADDDATE(@checkweekday, INTERVAL 1 DAY) INTO @checkweekday;
  END WHILE;
END

Hanya untuk orang lain :

Jika Anda tidak yakin cara membuat rutin di phpmyadmin, Anda dapat memasukkan ini ke dalam kueri SQL

delimiter ;;
drop procedure if exists test2;;
create procedure test2()
begin
select ‘Hello World’;
end
;;

Jalankan kueri. Ini akan membuat prosedur tersimpan atau rutin tersimpan bernama test2. Sekarang buka tab rutinitas dan edit prosedur tersimpan menjadi yang Anda inginkan. Saya juga menyarankan membaca http://net.tutsplus.com/ tutorials/an-introduction-to-stored-procedures/ jika Anda memulai dengan prosedur tersimpan.

Fungsi first_day yang Anda butuhkan adalah:Bagaimana cara mendapatkan hari pertama setiap bulan yang sesuai di mysql?

Menunjukkan Prosedur berfungsi Cukup tambahkan baris berikut di bawah END WHILE dan di atas END

SELECT @curmonth,@curmonthname,@totaldays,@daycount,@workdays,@checkweekday,@checkday;

Kemudian gunakan kode berikut di Jendela Kueri SQL.

call test2 /* or whatever you changed the name of the stored procedure to */

CATATAN: Jika Anda menggunakan ini, harap diingat bahwa kode ini tidak memperhitungkan hari libur nasional (atau hari libur apa pun).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menggunakan group by dengan tiga kolom data?

  2. Bagaimana cara mendapatkan hasil dari kueri jika tanggal yang dipilih berada di antara dua tanggal?

  3. mencoba INSERT NULL jika bidang input dibiarkan kosong

  4. Bagaimana saya bisa membuat ambang batas untuk string serupa menggunakan jarak Levenshtein dan memperhitungkan kesalahan ketik?

  5. Cara menampilkan gambar (tipe bolb) di halaman jsp dari mySql DB di Struts 2 menggunakan Hibernate