Autor Zpráva
Milan1236000
Profil
Čau,

jde v SQL napsat podmínka, podle které se pak dále např. na základě počtu záznamů nějakého dalšího dotazu rozhodne, který "finální" dotaz se použije pro výběr dat?
Nezdá se mi to nereálné, ale bohužel mi nefunguje ani tento testovací dotaz:
IF (1=1)
    BEGIN
        SELECT DATE(NOW())
    END
ELSE
    BEGIN
        SELECT TIME(NOW())
    END

Píšu to špatně, nebo něco takového zatím provést nelze?

Alternativně samozřejmě můžu napsat postupně jednotlivé dotazy, které si pak php zavolá a rozhodne ono, ale napadlo mě trochu více využít toho obrovského výkonu databáze oproti "pomaličkému" php. :)

Díky.
Mlocik97
Profil
Milan1236000:
ten testovací dotaz je nezmysl a aj chybný navyše.... 1. podmienka nezmyselná, v oboch vetvách stejný kód... SELECT v SQL nemůže stát samostatne, vždy v spojení s FROM klauzulov.
Milan1236000
Profil
Mlocik97:
I když napíšu podmínku s FROM, tak se mi nevypíše ani datum, ani čas.

IF ((SELECT COUNT(id) FROM my_table) > 0)
...
Keeehi
Profil
SELECT v SQL nemůže stát samostatne, vždy v spojení s FROM klauzulov.
Před tím, než sem něco napíšeš, tak si zkus prosím ověřit, zda je to pravda. SELECT samozřejmě může být bez FROM.
SELECT now() je příklad perfektně funkčního dotazu.
sqlfiddle.com/#!9/9eecb/11776

Milan1236000:
Pokud chceš if, tak to je funkce, takže zapsat by se to dalo takto
SELECT IF (1=1, DATE(NOW()), TIME(NOW()))

Pokud by jsi to chtěl více blokově, tak se dá použít CASE
SELECT
CASE
  WHEN 1>0 THEN
    DATE(NOW())
  ELSE
    TIME(NOW())
END
Tím selectem to ale musí začínat.

napadlo mě trochu více využít toho obrovského výkonu databáze oproti "pomaličkému" php. :)
To je spíš cesta do pekel. PHP samo o sobě až tak pomalé není. A když pomalé je, tak je to v naprosté většině jen tím, že programátor napsal neefektivní kód. Pokud máš pomalý kód, zprovozni si profiler, tím zjistíš co je v kódu největší brzdou a pak se zamysli nad tím, jak to napsat efektivně.
Mlocik97
Profil
Keeehi:
Tam v knihe "SQL za 28 dní" od `Ryan Stephens, Ron Plew a Arie D. Jones` klamú, rovnako aj na jednej stránke (ktorú si už nepametám, ale bola v češtine), z kade som sa učil SQL. Dobre vedieť.
Keeehi
Profil
Mlocik97:
Tam v knihe "SQL za 28 dní" od `Ryan Stephens, Ron Plew a Arie D. Jones` klamú
To znovu není pravda. Jen jsi to nečetl pořádně. Viz strana 49 v sekci Píšeme první dotaz > Vstup
Podstatné je, že příkaz SELECT je téměř vždy doprovázen klauzulí FROM.
Mlocik97
Profil
Keeehi:
ok, pozrel som sa, už mlčím...
Milan1236000
Profil
Keeehi:
Skvěle, díky moc. :)

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:

0