Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: UPDATE + CASE i WHEN
Forum PHP.pl > Forum > Bazy danych > MySQL
wujek2009
Hej, potrzebuje pomocy przy sformułowaniu zapytania aktualizującą tabele konfiguracyjną.
Wiem, że można zrobić oddzielnym zapytaniem dla każdej wartości, ale wtedy będę miał np. 20 zapytań (bądź więcej w zależności od ilości ustawień) a pamiętam, że istnieje aktualizacja rekordów za pomocą CASE + WHEN.

  1. UPDATE configuration SET
  2. case value = 'nowa wartosc'
  3. when variable = 'site_name'
  4. case value = 'druga wartosc'
  5. when variable = 'site_mail'


W odpowiedzi dostaje mysql error;
Kod
#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 'case value = 'nowa wartosc' when variable = 'site_name' case value = 'druga ' at line 2
toaspzoo
a przecinki ?

Kod
    UPDATE configuration SET
    case value = 'nowa wartosc',
    when variable = 'site_name',
    case value = 'druga wartosc',
    when variable = 'site_mail'
wujek2009
Nie, problem nie polega na braku przecinków w aktualnym stanie jaki przedstawiłem w pierwszym poście. Otrzymałem ponownie mysql error ten sam co w pierwszym poście.
skowron-line
A widziałeś kiedyś manuala na oczy questionmark.gif http://dev.mysql.com/doc/refman/5.0/en/con...l#operator_case
mortus
Chyba, jak to manual pokazuje, instrukcja CASE wygląda nieco inaczej w MySQL:
  1. UPDATE configuration SET
  2. `value` = (CASE `variable`
  3. WHEN 'site_name' THEN 'nowa wartość'
  4. WHEN 'site_email' THEN 'druga nowa wartość'
  5. END)
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-2024 Invision Power Services, Inc.