Portál AbcLinuxu, 12. května 2025 12:38

Dotaz: Mysql dotaz

4.12.2014 09:11 Terka | skóre: 13
Mysql dotaz
Přečteno: 230×
Odpovědět | Admin
sloupec
countries
DO,AR
TR,MA,XN,VC
TR,BO,XN
ZA
ZA

toto bych potrebovala propojit s tabulkou se sloupcem
country
BO
CZ
DO
US

Jak slozit dotaz tak aby byl vysledek stejny jako kdybych hodnoty mela separatne v kazdem radku,
ne oddelene carkami 

countries
DO
AR
TR
MA
XN
VC
TR
BO
ZA

select b.country
from tableA a, tableB b
where a.countries = b.country


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

4.12.2014 10:05 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: Mysql dotaz
Odpovědět | | Sbalit | Link | Blokovat | Admin
Koukni na FIND_IN_SET().
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
4.12.2014 10:42 Terka | skóre: 13
Rozbalit Rozbalit vše Re: Mysql dotaz
zkusila jsem tohle, ale dostanu out of memory

select data.country
 from  alert
 join  data
ON FIND_IN_SET(data.country, alert.affected_country)

ale dostanu out of memory.


jde napsat nejaky cyklus typu:

for onecountry in data.country
select 
where alert.country like %onecountry%
diky!
Tarmaq avatar 4.12.2014 11:54 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Mysql dotaz
Odpovědět | | Sbalit | Link | Blokovat | Admin
Otazkou je, proc to countries obsahuje hodnoty oddelene carkou. Podle me bys to mela mit presne naopak, tedy tabulku kde budou vsechny zeme, pote druhou, ktera bude ty zeme seskupovat. Pokud nutne potrebujes mit ty zeme ve stringu oddelene carkami, urcite na to pujde vyrobit nejaky pohled..
Don't panic!
4.12.2014 13:22 Terka | skóre: 13
Rozbalit Rozbalit vše Re: Mysql dotaz
Je to tak proto, že někomu kdo designoval databázi to přišlo jako dobrej nápad. Mě tolik ne.
Tarmaq avatar 8.12.2014 09:33 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Mysql dotaz
Nikdy neni pozde na redesign databaze ;]
Don't panic!
4.12.2014 16:38 Tomáš
Rozbalit Rozbalit vše Re: Mysql dotaz
Odpovědět | | Sbalit | Link | Blokovat | Admin
tohle nebude fungovat?

select b.country from tableA a, tableB b where a.countries like "%"+b.country+"%"
4.12.2014 16:44 Tomáš
Rozbalit Rozbalit vše Re: Mysql dotaz
create table #cs (cous varchar(100))

create table #c (c varchar(2))

insert into #cs values ("DO,AR")

insert into #cs values ("TR,MA,XN,VC")

insert into #cs values ("TR,BO,XN")

insert into #cs values ("ZA")

insert into #cs values ("ZA")

insert into #c values ("BO")

insert into #c values ("CZ")

insert into #c values ("DO")

insert into #c values ("US")

select b.c from #cs a, #c b where a.cous like "%"+b.c+"%"

a výsledek:

BO

DO

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.