Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Aktualizacja wartości jednym zapytaniem z nietypową budową tabeli w bazie
Majkelo23
post
Post #1





Grupa: Zarejestrowani
Postów: 226
Pomógł: 17
Dołączył: 13.02.2012

Ostrzeżenie: (0%)
-----


Jak przy takiej budowie tabeli:

Cytat
config_name | config_value
nazwa _______________ 1
nazwa2 _______________ 343434
nazwa3_______________ ifejfiesfjesifj


Zaktualizować za jednym zamachem wszystkie rekordy? Przy aktualizacji jednego, wyglądałoby to tak:

  1. UPDATE `config` SET config_value = 'wartosc' WHERE config_name = 'nazwa';


Da się jakoś skonstruować to zapytanie tak, aby XX takich rekordów zaktualizować za jednym zamachem?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Cytat
A odpowiadając na pierwsze pytanie: jeśli wartości są różne dla każdego wpisu to nie da się. Nie da się czystym zapytaniem MySQL.
Formalnie rzecz biorąc to jak najbardziej da się, ale nie będzie to za ładne zapytanie, coś w stylu:
  1. UPDATE config SET config_value = CASE config_name WHEN "nazwa1" THEN "nowa wartość 1" WHEN "nazwa2" THEN "nowa wartość 2" WHEN "nazwa3" THEN "nowa wartość 3" END CASE WHERE config_name IN ("nazwa1", "nazwa2", "nazwa3");
Ale taki potworek to koszmar w "utrzymaniu", powinieneś w obrębie jednej transakcji wykonać n zapytań UPDATE, tak jak pokazał to @bostaf.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 09:45