|
| MySQL + SELECT + REGEX Fra : Jimmy |
Dato : 01-02-03 20:30 |
|
Hej
Jeg anvender en MySQL 3.23.
Jeg modtager SMS fra forskellige lande og lagrer disse i en tabel.
Der er forskellige landekoder på disse afsendernumre - f.eks. 4526000000
Mine brugere har typisk indtastet deres mobilnummer *uden* landekode.
Jeg ønsker at parre alle de indkomne SMS med deres respektive brugere.
Jeg kan gøre det ved at løbe alle brugerne igennem, hente deres mobilnummer
og lave et regulært udtryk der tager højde for landekoden i tabellen med
SMS.
.... WHERE Mobil_Nr REGEXP ('(\d{0,3})"& SMS_Afsender_Nr &"$')
Dette er dog højst ineffektivt, da der er flere brugere end SMS og jeg
ønsker kun at hente de seneste 20 SMS.
Jeg ønsker derfor at løbe tabellen med SMS igennem.
Jeg får så et mobilnummer der er på f.eks. 10 tegn og skal SELECTe på noget
med typisk 8.
Jeg kan ikke fjerne landekoden, da jeg ikke ved om den er på 1, 2 eller 3
tal.
Hvordan ville I gribe det an?
Mvh
Jimmy
| |
Karsten H. (01-02-2003)
| Kommentar Fra : Karsten H. |
Dato : 01-02-03 22:56 |
|
"Jimmy" <spoerg@efter.den> wrote in
news:9cV_9.69$hT5.27@news.get2net.dk:
> Hvordan ville I gribe det an?
select etellerandet from min_tabel where mobilnummer like '%28272625'
Når du bruger like fungerer % som wildcard.
--
Karsten H.
Som har skrevet sin mail-adresse baglæns for at narre fjenden i Aalborg.
| |
Jimmy (01-02-2003)
| Kommentar Fra : Jimmy |
Dato : 01-02-03 23:34 |
|
"Karsten H." <netsrak@egotrip.dk> wrote in message
news:Xns9315E949FE05Akarstenegotripdk@212.54.64.135...
> "Jimmy" <spoerg@efter.den> wrote in
> news:9cV_9.69$hT5.27@news.get2net.dk:
>
> > Hvordan ville I gribe det an?
>
> select etellerandet from min_tabel where mobilnummer like '%28272625'
>
> Når du bruger like fungerer % som wildcard.
Ja den havde jeg også tænkt på.
Mit problem er at et udenlandsk telefonnummer måske består af færre tal end
8 og f.eks. med landekode 52.
Nr i DB - 26 00 00 00
SMS - DK - 45 26 00 00 00
SMS - Andet land - 5 26 00 00 00 (Landekode 52 og nr. 60000000)
Med ovenstående fiktive telefonnummer vil min SQL udtrække to resultater,
hvoraf kun den ene er korrekt.
Jeg skal måske gribe det lidt anderledes an og se på om landekoder *altid*
består af to tal og så fjerne dem manuelt før SELECT...
Mvh
Jimmy
| |
JMo. (01-02-2003)
| Kommentar Fra : JMo. |
Dato : 01-02-03 23:47 |
|
"Jimmy" <nyhedsgruppe@get3_erstat_3_med_2_net.dk> wrote in
news:TWX_9.109$JD6.93@news.get2net.dk:
> Jeg skal måske gribe det lidt anderledes an og se på om landekoder
> *altid* består af to tal og så fjerne dem manuelt før SELECT...
Det gør de ikke - de er på 1 - 3 cifre.
Se evt.:
http://www.itu.int/itudoc/itu-t/ob-lists/icc/e164_763.html
| |
Jimmy (02-02-2003)
| Kommentar Fra : Jimmy |
Dato : 02-02-03 00:10 |
|
"JMo." <ns_sf008@mohr.cx> wrote in message
news:Xns9315F1E8C4FE7JMoUsenetPost@212.54.64.149...
> "Jimmy" <nyhedsgruppe@get3_erstat_3_med_2_net.dk> wrote in
> news:TWX_9.109$JD6.93@news.get2net.dk:
>
> > Jeg skal måske gribe det lidt anderledes an og se på om landekoder
> > *altid* består af to tal og så fjerne dem manuelt før SELECT...
>
> Det gør de ikke - de er på 1 - 3 cifre.
>
> Se evt.:
> http://www.itu.int/itudoc/itu-t/ob-lists/icc/e164_763.html
ÆV - ja så har jeg ikke mulighed for med sikkerhed at strippe den rette
landekode af...
Tak for svaret,
Jimmy
| |
Søren \"Pengman\" Pe~ (02-02-2003)
| Kommentar Fra : Søren \"Pengman\" Pe~ |
Dato : 02-02-03 18:26 |
|
> ÆV - ja så har jeg ikke mulighed for med sikkerhed at strippe den rette
> landekode af...
Kan du ikke bede brugerne om at angive hvilket land de kommer fra og så lave
regler ud fra denne angivelse??
Eller skal det virke den anden vej?? (at du matcher beskedder med brugere??)
Søren
| |
Jimmy (02-02-2003)
| Kommentar Fra : Jimmy |
Dato : 02-02-03 20:00 |
|
"Søren "Pengman" Pedersen" <pengmeister@hotmail.com> wrote in message
news:LPc%9.51668$Hl6.6516100@news010.worldonline.dk...
>
> > ÆV - ja så har jeg ikke mulighed for med sikkerhed at strippe den rette
> > landekode af...
>
> Kan du ikke bede brugerne om at angive hvilket land de kommer fra og så
lave
> regler ud fra denne angivelse??
> Eller skal det virke den anden vej?? (at du matcher beskedder med
brugere??)
Jeg har et GSM modem der modtager SMS.
Jeg har derfor ingen indflydelse på landekoden o gkan ikke fjerne den
derfra.
Jeg kunne godt bede mine brugere indtaste landekode, men jeg tvivler på
særligt mange af dem ville gøre det eller kunne finde ud af det.
Det er derfor jeg helst vil løse problemet uden at kræve noget af
brugerne...
Og ja, jeg modtager en besked og matcher derpå mobilnummeret med landekode
med brugernes mobilnumre uden landekode.
Mvh
Jimmy
| |
Søren \"Pengman\" Pe~ (02-02-2003)
| Kommentar Fra : Søren \"Pengman\" Pe~ |
Dato : 02-02-03 22:13 |
|
"Jimmy" <nyhedsgruppe@get3_erstat_3_med_2_net.dk> wrote in message
news:iUd%9.142$l%1.83@news.get2net.dk...
> Og ja, jeg modtager en besked og matcher derpå mobilnummeret med landekode
> med brugernes mobilnumre uden landekode.
>
> Mvh
> Jimmy
Kunne man så ikke lave det sådan at første gang du matcher et nr med
landekode med en bruger "overskriver" dette nr det som brugeren har
indtastet??
Bare et forslag, jeg ved ikke ret meget om databasestyring og endnu mindre
om telefonsystemer...
Søren
| |
Jimmy (02-02-2003)
| Kommentar Fra : Jimmy |
Dato : 02-02-03 22:25 |
|
"Søren "Pengman" Pedersen" <pengmeister@hotmail.com> wrote in message
news:AQf%9.51753$Hl6.6545369@news010.worldonline.dk...
>
> "Jimmy" <nyhedsgruppe@get3_erstat_3_med_2_net.dk> wrote in message
> news:iUd%9.142$l%1.83@news.get2net.dk...
>
> > Og ja, jeg modtager en besked og matcher derpå mobilnummeret med
landekode
> > med brugernes mobilnumre uden landekode.
> >
> > Mvh
> > Jimmy
>
> Kunne man så ikke lave det sådan at første gang du matcher et nr med
> landekode med en bruger "overskriver" dette nr det som brugeren har
> indtastet??
Mit problem er, at jeg har mere data i det nummer jeg har og jeg skal matche
med noget der har mindre data.
Den anden vej er ret nem...
Mvh
Jimmy
| |
Jimmy (07-02-2003)
| Kommentar Fra : Jimmy |
Dato : 07-02-03 22:18 |
|
"Søren "Pengman" Pedersen" <pengmeister@hotmail.com> wrote in message
news:LPc%9.51668$Hl6.6516100@news010.worldonline.dk...
>
> > ÆV - ja så har jeg ikke mulighed for med sikkerhed at strippe den rette
> > landekode af...
>
> Kan du ikke bede brugerne om at angive hvilket land de kommer fra og så
lave
> regler ud fra denne angivelse??
Jeg er egentligt ikke meget for denne løsning, da den kræver noget af
brugerne, men det er den jeg vælger, da den er bedre end en halv løsning,
der kan fejle serverside.
Med andre ord er fejlkilden lagt ud til den enkelte bruger.
Tak for input,
Jimmy
| |
|
|