Autor Zpráva
gardener
Profil
Zdravím mám problém, který mi nějakým záhadným způdobem nejde pochopit..
V dotazu
SELECT * FROM seznam WHERE interpret OR album = 'hledany vyraz' ORDER BY id DESC LIMIT 10


Mi vrátí dobrý výsledek a přitom pokud dám pouze a pokud zapíši

WHERE album = 'hledany vyraz' 
tak to vrátí prázdný výsledek, což by ale mělo i při použití OR, nebo se pletu?
Je pravda, že zrovna na tento výraz je buňka u album prázdná ale to by nemělo ničemu přeci vadit , když už na vyhledávanou frázi natrefí ve sloupci interpret...

Díky za jakoukolliv radu...
Tomasds
Profil
Ne úplně dobře chápu logiku tvé věty, ale myslím že chceš toto:

SELECT * FROM seznam WHERE interpret = 'hledany vyraz' OR album = 'hledany vyraz' ORDER BY id DESC LIMIT 10
Medvídek
Profil
nemusí to být takto ?
SELECT * FROM seznam WHERE interpret = 'hledany vyraz' OR album = 'hledany vyraz' ORDER BY id DESC LIMIT 10

//edit: to ta cache :)
gardener
Profil
Pravda, napsal jsme to uplne divne, tak jsem to upravil...ale je to tak jak říkáš, jen by mne zajímalo, jak by šlo udělat abych to nemusel jenom tupě opisovat, protože ta vyhledávaná hodnota bude u všech sloupců stejná...
Tzn. nějak pomocí pole?
Tomasds
Profil
Kolik těch sloupců máš, že to řešíš? Fyzicky nejkratší možná varianta je

SELECT * FROM seznam WHERE interpret = '$i' OR album = '$i' ORDER BY id DESC LIMIT 10
Tomasds
Profil
gardener
K duplicitním tématům: být to v mé moci, jedno z témat (náhodně vybrané), bych ti prostě smazal. Příště by sis vystačil s jedním.
Kajman_
Profil *
WHERE 'hledany vyraz' in (interpret,album)
gardener
Profil
Kajman_ Ano, to je ono díky moc..je to rozhodně stokrát lepší, než používat OR a AND
Jinak, nějaký seznam nejpoužívanějších SQL dotazů, není někde třeba zpracovaný k nahlédnutí?
gardener
Profil
Jen by mě zajímalo, jak ošetřit situaci, kdy je výraz sice zadán ale v DB se nanachází, výsledek pak vrací sadu včech záznamů..což by neměl..potřeboval bych aby vrátil 0 záznamů a podle toho to již oštřím..

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: