| Autor | Zpráva | ||
|---|---|---|---|
| klicko Profil * |
#1 · Zasláno: 15. 11. 2014, 23:25:04
Zdravim. Když mám pole hodnot kterým potřebuju updatovat několik řádků v tabulce, ale ty změny se různí, tak jak se to dělá jedním dotazem?
třeba na řádku který má id 5 potřebuju ve sloupci hodnoty nastavit 1 a pak ve sloupci co id 6 potřebuju v tom sloupci nastavit 2.Děkuju. |
||
| Alphard Profil |
#2 · Zasláno: 15. 11. 2014, 23:29:32
Můžete se inspirovat tady Dvojné pole..?, nicméně pokud nemám reálný důvod šetřit dotazy, asi bych provedl jednoduchý update v cyklu.
|
||
| klicko Profil * |
#3 · Zasláno: 16. 11. 2014, 00:58:12
no snažim se se inspirovat, ale háže mi to ERROR: syntax error at or near "join"
|
||
| Alphard Profil |
#4 · Zasláno: 16. 11. 2014, 01:07:58
Jak to zkoušíte? Nebylo to zmíněno explicitně, ale bavíme se o MySQL, ne? Tam je update join validní konstrukce.
Mohu maximálně uvést další alternativy s duplicate key nebo case. Koneckonců, v tom vlákně je i ten vložený dotaz. |
||
| klicko Profil * |
#5 · Zasláno: 16. 11. 2014, 01:12:53
Ne vlastně. O postgres se bavíme. Sem to měl asi napsat nazačátku už.
|
||
| Alphard Profil |
#6 · Zasláno: 16. 11. 2014, 02:18:05
Většina dotazů v této kategorii se týká MySQL, když jde o něco jiného, je třeba to zdůraznit.
V principu je to totéž, jen je třeba zapsat to trochu jinak, viz stackoverflow.com/a/18799497. |
||
| klicko Profil * |
#7 · Zasláno: 17. 11. 2014, 03:03:51
někdo mi poslal tohle :
select status original, status & 1 "deletedByAdresat", status & 2 "deletedBySender" from generate_series (3, 0, -1) serie (status); update messaget set active = active & (userIsSender::integer + 1) ale není to kompletní a já nevím jak to mohl myslet. Jak to mohl myslet? |
||
|
Časová prodleva: 11 let
|
|||
0