Autor | Zpráva | ||
---|---|---|---|
nowis Profil * |
#1 · Zasláno: 29. 5. 2012, 16:38:31
Zdravím,
jsem SQL jazyce poměrně neznalý, takže doufám, že můj dotaz není úplně mimo. Mám tabulku, ve které mám několik sloupců, a na základě obsahu některých polí potřebuji přiřadit hodnotu dalšímu poli. Tedy potřebuji něco jako vypočítaný záznam. Např. pokud je něco v poli A1, a nic v poli B1, pole C1 bude mít hodnotu na základě toho hodnotu "traktor". Když budou vyplněny pole A1 i B1, pak C1 bude mít hodnotu "osobák" Je v SQL (MySQL) něco takového možné, nebo to musím nějak (nevím jak) dělat pomocí dotazu? Díky |
||
Kajman Profil |
#2 · Zasláno: 29. 5. 2012, 16:52:41
nowis:
„pokud je něco v poli A1, a nic v poli B1, pole C1 bude "traktor"“ Možné to je, SELECT `a1`, `b1`, CASE WHEN `a1` IS NOT NULL AND `b1` IS NULL THEN 'traktor' WHEN `a1` IS NOT NULL AND `b1` IS NOT NULL THEN 'osobák' end AS C1 FROM tabulka |
||
nowis Profil * |
#3 · Zasláno: 29. 5. 2012, 17:00:41
Kajman:
takže to musí být řešeno dotazem? Nejde to vypočítávat přímo v tabulce? |
||
Tori Profil |
#4 · Zasláno: 29. 5. 2012, 19:23:57
Tu část mezi CASE a END můžete použít pro jednorázový update celé tabulky a doplnění hodnot do sloupce c1. Ale pro všechny nové záznamy (nebo i updatované, pokud se při updatu mohou změnit hodnoty a1 a b1 takovým způsobem, že se změní i hodnota c1) to budete muset asi stejně řešit ještě v PHP. Resp. připadá mi to o dost přehlednější napsat do PHP, než do SQL.
|
||
Časová prodleva: 13 let
|
0