Autor Zpráva
nowis
Profil *
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
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  
ale myslím, že do sql příkazu to nepatří.
nowis
Profil *
Kajman:
takže to musí být řešeno dotazem? Nejde to vypočítávat přímo v tabulce?
Tori
Profil
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: