ugrás a tartalomhoz

Adatok számolása oszloponként, hasonló sztring esetén (MySQL 5)

Anonymous · 2006. Ápr. 20. (Cs), 12.39
Sziasztok!

Az egyik táblában megszámlálom az adatokat és csoportosítom őket.
Az eredmény így néz ki:

város1 -> 10
város2 -> 3
város3 -> 6

Meg lehet adni azt valahogy, hogy a hasonló stringeket egybe vegye?
Például:
'Budapest' és 'Budapest IX' és 1089 budapest csak annyit eredményezzen, hogy 'Budapest'?

Valami ilyesmire gondoltam először: %Budapest% viszont, a csoportosítás miatt ezt nem tudtam megcsinálni.

Jah és mysql5-ről van szó.
 
1

javaslat

mdesign · 2006. Ápr. 20. (Cs), 13.18
amúgy tapasztalataim szerint jó ha beleveszed "Bp"-t is, mert sokan csak ennyit írnak ha nekik kell gépelni...
2

Uj oszlop

Jano · 2006. Ápr. 20. (Cs), 13.31
Esetleg csinalj egy uj oszlopot amibe beiraskor a Bp., Budapest, Bupdaest XI-nel is Budapest-et irsz (ertelemszeruen minden telepulessel hasonloan), majd a groupolos lekerdezesnel ezzel az oszloppal kerdezel le.
3

ötlet

Anonymous · 2006. Ápr. 20. (Cs), 13.37

select
  count(varos) as varosok, if(varos like '%budapest%','Budapest',varos) as varos_gb
from
  varos
group by
  varos_gb
mysql 5 alatt próbáltam, nekem működött. értelemszerűen a feltételt kell megváltoztatnod (reguláris kifejezésre például), én abból indultam ki, amit szerettél volna.
azt viszont nem tudom megmondani, hogy ez mennyire ésszerű, de kevés adatnál valószínűleg nem lesz lassú, nagyon sok adatnál meg nem árt indexelni, vagy a városok neveit külön táblában tárolni, itt pedig csak az azonosítójukat tárolni.

gex
4

re

Anonymous · 2006. Ápr. 20. (Cs), 17.48
Először is: köszi mindenkinek! :)
Másodszor,:
azthiszem nem sikerült "átadnom" a lényegét a problemámnak :)

A fennti megoldás helyére tehetnék egy legördülő menüt akár, hogy Budapest és el lenne intézve a dolog :)
Viszont a baj az, ha például Svédországból regisztrál valaki egy várost, nem biztos, hogy tudom az ottani összes település nevét :)

Nem lehet ezt valahogy sql-lel megoldani, akár reguláris kifejezéssel, vagy vmi soundex() függvénnyel (bár ez így nagyon barbár :) )?
6

előző sql?

Anonymous · 2006. Ápr. 20. (Cs), 18.06
kipróbáltad, amit írtam? az miért nem volt jó?

gex
5

2 megoldás

janoszen · 2006. Ápr. 20. (Cs), 17.54
Az egyik megoldás, hogy csinálsz egy SELECT DISTINCT belső hívást és utána kézzel szűrsz.

A másik, amit el tudok képzelni, az az első szóköz előtti adat figyelembe vétele.