Autor Zpráva
24k
Profil *
Zdravim,

existuje reverzni fce ke GROUP_CONCAT? (GC udela z radku string do jednoho radku a ja potrebuji opak).
Abych to upresnil tak mam select


SELECT zapasy from souteze where id=1


vysledkem je bohuzel string -> "1,2,3,51,222";
a ja z nej potrebuji udelat nejakou reverzni fci COSI co dosadim do dalsiho selectu do operatoru IN()

tj neco jako

SELECT * from vysledky WHERE id IN ( SELECT NEJAKA_FUNKCE(zapasy) from souteze where id=1 )


Diky

PS. O uprave tabulek pls nepsat, vim jak ma vypadat spravne navrzena relace, hledam proste reseni tohoto problemu pokud existuje.
Kajman_
Profil *
where find_in_set(id,zapasy)
24k
Profil *
Kajmane jak to ma vypadat cele? Nejak mi to ani po precteni fce nedava smysl.
Tato fce vraci cislo vyskytu hledaneho znaku
Kajman_
Profil *
select * from vysledky v, souteze z where find_in_set(v.id,z.zapasy) and z.id=1
mila
Profil
Zkus něco jako strpos. Nevím jakou má přesně sytnaxi v SQL, ale není problém si to najít.
Něco jako

... WHERE STRPOS(CONCAT(",",SELECT zapasy from souteze where id=1,","), CONCAT(",",id,","))

Idea je, že číslo musí být podřetězec, před ním a za ním ale musí být čárka (aby to nevybralo 1, kde je 120),
a aby se ošetřil první a poslední, tak se před a za přidá také čárka.

P.S. Bude to ale neskutečně pomalé a ošklivé. Uprav tabulky:)

EDIT: Pozdě, řešení to není jistě pěkné, jestli funguje něco jako find_in_set, jistě to bude lepší..
24k
Profil *
Super! Btw jde to vubec konstrukci JOIN?
24k
Profil *
Mluvim na kaimana .. ;)) s tim JOINEM, mila diky za snahu
Kajman_
Profil *
select * from vysledky v join souteze z on z.id=1 where find_in_set(v.id,z.zapasy)
select * from vysledky v join souteze z on find_in_set(v.id,z.zapasy) and z.id=1
24k
Profil *
nejak jsem zil v domneni ze JOIN syntaxe a jeji spojeji ON tab1.sloupec = tab2.sloupec ma platit vzdy a vsude.
Tady to tak nevypada.

Diky moc za nove rozsireni obzoru
Kajman_
Profil *
Používá se to tak, protože tak můžeš pomoci mysql s optimalizací. V tomhle případě asi rychlost nebude moc rozdílná.
MzM
Profil *
nojo, ale krom toho, že to bude o půl promile rychlejší, tak se v tom nikdo nevyzná....
Toto téma je uzamčeno. Odpověď nelze zaslat.

0