Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak skonfigurować pętlę WHILE za pomocą instrukcji IF w MySQL?

Odkryłem, że nie można używać warunków warunkowych poza procedurą składowaną w mysql. Dlatego błąd składni. Jak tylko wstawię potrzebny kod między

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

Tylko dla innych :

Jeśli nie jesteś pewien, jak utworzyć procedurę w phpmyadminie, możesz umieścić to w zapytaniu SQL

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

Uruchom zapytanie. Spowoduje to utworzenie procedury składowanej lub procedury składowanej o nazwie test2. Teraz przejdź do zakładki procedur i edytuj procedurę składowaną, aby była taka, jak chcesz. Proponuję również przeczytać http://net.tutsplus.com/ tutoriale/wprowadzenie-do-przechowywanych-procedur/ jeśli zaczynasz z procedurami składowanymi.

Potrzebna funkcja pierwszego dnia to:Jak uzyskać pierwszy dzień każdego miesiąca w mysql?

Pokazuje, że procedura działa Po prostu dodaj następującą linię poniżej END WHILE i powyżej END

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

Następnie użyj następującego kodu w oknie zapytań SQL.

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

UWAGA: Jeśli użyjesz tego, pamiętaj, że ten kod nie uwzględnia świąt obchodzonych w kraju (ani żadnych świąt w tym zakresie).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Jak wielokrotnie dołączać do tego samego stołu?

  2. Dane open source rosną:wybór MySQL, NoSQL lub obu

  3. MySQL — użycie COUNT(*) w klauzuli WHERE

  4. Aktualizacja MySQL lub zmiana nazwy klucza w JSON

  5. Jak wstawić tablicę json do bazy danych mysql?