Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Procedury: if else
Forum PHP.pl > Forum > Bazy danych > MySQL
Garrett
Witam
Chcę stworzyć sobie taką procedurkę, która sortuje wyniki w zależności od podanego parametru: 1 albo 2

  1. CREATE PROCEDURE zad2(par1 int)
  2. BEGIN
  3. IF par1=1 then
  4. SELECT Name, LANGUAGE, Percentage, Population, LifeExpectancy, floor(Population*(Percentage/100)) AS LudnoscMOWIACAjezykiem FROM country
  5. JOIN countrylanguage ON ( countrylanguage.CountryCode=country.Code )
  6. WHERE IsOfficial='T'
  7. ORDER BY Name
  8.  
  9. ELSE
  10. SELECT Name, LANGUAGE, Percentage, Population, LifeExpectancy, floor(Population*(Percentage/100)) AS LudnoscMOWIACAjezykiem FROM country
  11. JOIN countrylanguage ON ( countrylanguage.CountryCode=country.Code )
  12. WHERE IsOfficial='T'
  13. ORDER BY LANGUAGE
  14. END IF
  15. END


I próbuję na różne sposoby wpisywać te BEGINY i ENDY, ale nadal wywala:

Error Code: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END


Gdzie jest błąd?
kokers
brakuje kilku średników no i w mysql trzeba jeszcze ustawić delimiter czyli coś takiego:
  1. DELIMITER //
  2. CREATE PROCEDURE zad2(par1 int)
  3. BEGIN
  4. IF (par1=1) then
  5. SELECT Name, LANGUAGE, Percentage, Population, LifeExpectancy, floor(Population*(Percentage/100)) AS LudnoscMOWIACAjezykiem FROM country
  6. JOIN countrylanguage ON ( countrylanguage.CountryCode=country.Code )
  7. WHERE IsOfficial='T'
  8. ORDER BY Name;
  9.  
  10. ELSE
  11.  
  12. SELECT Name, LANGUAGE, Percentage, Population, LifeExpectancy, floor(Population*(Percentage/100)) AS LudnoscMOWIACAjezykiem FROM country
  13. JOIN countrylanguage ON ( countrylanguage.CountryCode=country.Code )
  14. WHERE IsOfficial='T'
  15. ORDER BY LANGUAGE;
  16.  
  17. END IF;
  18. END //
  19. DELIMITER ;

Garrett
Dzięki smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.