Diskuze: MySQL dotaz

PHP PHP MySQL dotaz American English version English version

Avatar
svanda777
Redaktor
Avatar
svanda777:

Ahoj, potřebuji poradit s MySQL dotazem.

SELECT `nazev`, `url`
FROM `produkty`
WHERE `odvetvi` LIKE "%;?;%"

V buňce odvětví mám například ;1;2;5;4; a dotaz má ověřit, jestli je v buňce řetězec ;5;.

Editováno 23.7.2014 10:02
 
Odpovědět 23.7.2014 10:01
Avatar
Jan Demel
Redaktor
Avatar
Odpovídá na svanda777
Jan Demel:

Ahoj. Myslím, že používat LIKE u tohodle kódu je zbytečné. Funkce LIKE nerozlišuje malá a velká písmena ... ty používáš číslice ;) No a nejde to celé vyřešit jednoduchým dotazem ? Nezkoušel jsem to, takže si nejsem jistý, jestli to bude fungovat, ale myslím si, že by mělo ;)

SELECT 'nazev', 'url' FROM 'produkty' WHERE id = '4'
Nahoru Odpovědět 23.7.2014 10:12
To co se zdá být nemožné, je vždy možné.
Avatar
svanda777
Redaktor
Avatar
svanda777:

Ale já mám v jedné buňce těch čísel několik (např. ;1;2;5;4;). Kód co posíláš by fungoval pouze v případě, že by v té buňce byla pouze číslice 4. Nebo ne?

 
Nahoru Odpovědět 23.7.2014 10:17
Avatar
Jan Demel
Redaktor
Avatar
Odpovídá na svanda777
Jan Demel:

Hmm. Tak to se omlouvám, ale to jsem ještě nikdy neřešil.

Nahoru Odpovědět 23.7.2014 10:19
To co se zdá být nemožné, je vždy možné.
Avatar
Bertram
Člen
Avatar
Odpovídá na svanda777
Bertram:

Ahoj, mám dojem, že máš špatný návrh databáze. Nebylo by lepší mít další tabulku s produkty_id | odvetvi_id a samozřejmě ješte tabulku odvetvi?

$search = 5;
$sth = $db->prepare("SELECT nazev, url FROM produkty WHERE odvetvi ?");
$sth->execute(array('%;' . $search . ';%'));
$result = $sth->fetchAll();

edit:
A ještě chci dodat, že pokud nebude i za poslední položkou středník, tak ji to nenajde.

Editováno 23.7.2014 12:41
 
Nahoru Odpovědět 23.7.2014 12:38
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.