Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: MySQL dotaz

Aktivity
Avatar
svanda777
Tvůrce
Avatar
svanda777:23.7.2014 10:01

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
Tvůrce
Avatar
Odpovídá na svanda777
Jan Demel:23.7.2014 10:12

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
Tvůrce
Avatar
svanda777:23.7.2014 10:17

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
Tvůrce
Avatar
Odpovídá na svanda777
Jan Demel:23.7.2014 10:19

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:23.7.2014 12:38

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.