Autor Zpráva
jval
Profil *
Zdravím mám dejme tomu tabulku:

id, type, name, time

hodnota type muze byt bud 1 nebo 2

Chci vypsat všechny záznamy, ale pokud type=2, tak jen time starsi nez 14 dnu

Jde to nějak?

děkuji
Taps
Profil
jval:
SELECT * FROM tabulka WHERE type=2
jval
Profil *
Taps:
Možná jsem to napsal, ale já chci vypsat type 1 i type 2, ale u type 2 omazit ten time.
Kajman
Profil
SELECT * FROM tabulka WHERE coalesce(type,0)!=2 OR `time`<date_sub('2014-02-12 08:00', interval 14 day)
jval
Profil *
Kajman:
To asi nebude to co potřebuji, napíši to jako v php

SELECT * FROM tabulka WHERE (type=2 ? '`time`<date_sub('2014-02-12 08:00', interval 14 day)':'')
Napadá mne jestli by nebyla cesta přes UNION

SELECT * FROM tabulka WHERE `type`=1
UNION ALL
SELECT * FROM tabulka WHERE `type`=2 AND `time`<date_sub('2014-02-12 08:00', interval 14 day)

Ale nevím jestli je to správná cesta
Kajman
Profil
jval:
To asi nebude to co potřebuji

Tak to asi nepotřebujete to, co popisujete v [#1] :-)
peta
Profil
jval: (podminka1) OR (podminka2) ... ORDER BY `type` ASC, nemusis pouzivat union.
jval
Profil *
peta:
Tak nakonec takto:
SELECT * FROM tabulka WHERE (`type`=1) OR (`type`=2 AND `time`<date_sub('2014-02-12 08:00', interval 14 day))

děkuju za nakopnutí

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: