Autor Zpráva
danhill
Profil
Ahoj,
chci se zeptat, jak mám správně postupovat.
V php bych použil třeba explode, nebo podobnou funkci,ale potřeboval bych již z databáze vyselectovat jen řádky na základě toho, že jedna z buněk obsahuje hledanou hodnotu.
Konkrétně v jedné z buněk (type) mám uloženu informaci 5,1,6,13,7 a v jiné třeba zase 8,16,4.
Čísla odkazují do jiné tabulky, kde každé číslo je id nějakého servisního úkonu, ale to nyní není podstatné.
A já hledám v tabulce jen řádky, které v této buňce obsahují např. 1 (tedy jen první případ)
Pokud bych použil
SELECT * FROM `service` WHERE `type` LIKE '%1%'
tak mi vypíše logicky i řádek druhý, protože je tam 16.
Má otázka tedy zní, jak správně formulovat takový dotaz, kde hledané číslo v takové buňce je proměnná ?
Děkuji.
Tomášeek
Profil
Mas spatny navrh databaze a toto je jeden z problému.

Oprav si navrh databaze (co hodnota, to radek ve vazební tabulce). Pak bude tento dotaz jednoduchý a předejdes dalším problémum v budoucnu.
danhill
Profil
No, tohle asi nebude úplně jednoduché předělat.
Jedná se o interní web servisní organizace a já potřebuji jen vytáhnout statistiky jednotlivých servisních úkonů u jednotlivých zákazníků za určitá období atp.
Vrhnout se do přepsání logiky ostatních modulů se mi vážně moc nechce, kor když to není moje práce - prostě to tak v minulosti někdo napsal a ten už není ...
A nemyslím si, že ukládání array do buňky je úplně špatně. Viděl jsem to již na několika projektech.
Dokonce i redakční systémy joomla i drupal využívají ukládání array ...
Ale nikdy jsem s tím nepotřeboval pracovat, tak mě to teď trochu zaskočilo ...
To na něco takového mysqli opravdu nemá funkci a musím to prohnat přes php?
Alphard_
Profil *
danhill:
A nemyslím si, že ukládání array do buňky je úplně špatně.
Když chceš vybírat to, co chceš, tak je :)

Dokonce i redakční systémy joomla i drupal využívají ukládání array
Justin Bieber je taky populární, což o kvalitě nic neříká.

Vrhnout se do přepsání logiky ostatních modulů se mi vážně moc nechce
To je zase docela rozumný, ale pouč se z toho.

To na něco takového mysqli opravdu nemá funkci...
Tak prasit jde vždycky, že jo...
where concat(',', `type`, ',') like '%,1,%'

Aby toho sarkasmu nebylo málo, pojmenovat si sloupec reservovaným slovem je další důkaz promyšlenosti :).
danhill
Profil
Chápu samozřejmě - sarkasmus je na místě ...
To je tak, když z původně malých bezvýznamných projektů vznikají firemní portály.
Ten systém je zralý na přepsání komplet. Ale kdo by to dělal/platil, když to funguje,že ...
Mě se to podařilo aspoň všechno přepsat do mysqli ať se vyhnu totalnímu pádu při změně verze php a nové věci můžu psát nově,ale někdy ani to nejde.
Přesto moc děkuji za prasárničku ... zase jsem chytřejší ...:)

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: