/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Parre mere data med mindre...
Fra : Jimmy


Dato : 07-02-03 00:39

Hej

Jeg har en tabel med følgende indhold:

ID Mobilnummer
----------------
1 26252423


Jeg skal trække en række ud baseret på følgende information:

4526252423


1) Jeg har ikke mulighed for at fjerne tallet 45.
2) Følgende er ikke muligt (som tidligere foreslået): ...WHERE Mobilnummer
LIKE '%4526252423'


Hvordan løses mit problem via SQL?
eller
Hvordan løses mit problem via tilføjelser til SQL, såsom regulære udtryk mv?


Mvh
Jimmy



 
 
Jens Gyldenkærne Cla~ (07-02-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 07-02-03 11:11

Jimmy skrev:

> ID Mobilnummer
> ----------------
> 1 26252423
>
>
> Jeg skal trække en række ud baseret på følgende information:
>
> 4526252423

Du har ikke skrevet hvilken database det drejer sig om [1], men i
diverse ms- baser kan man skrive:

.... WHERE RIGHT('4526252423', 8) = Mobilnummer

En anden mulighed er

.... WHERE '4526252423' LIKE ('%' + Mobilnummer)

- men den er lidt mere usikker, fordi der fx kan matches på en tom
streng.

Noter:
======
[1] Der er ret stor forskel på fx MS-sql og mySQL-sql
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma
(rettelser modtages gerne i dk.kultur.sprog)

Jimmy (07-02-2003)
Kommentar
Fra : Jimmy


Dato : 07-02-03 11:39


"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote in message
news:Xns931B71D3B651jcdmfdk@gyrosmod.dtext.news.tele.dk...
> Jimmy skrev:
>
> > ID Mobilnummer
> > ----------------
> > 1 26252423
> >
> >
> > Jeg skal trække en række ud baseret på følgende information:
> >
> > 4526252423
>
> Du har ikke skrevet hvilken database det drejer sig om [1], men i
> diverse ms- baser kan man skrive:

Jeg skal have løst problemet og kan derfor blive tvunget til at skifte
platform.


> ... WHERE RIGHT('4526252423', 8) = Mobilnummer

Modificeret med MySQL-specifikke udvidelser virker det faktisk:

SELECT
Mobilnummer
FROM
module_SMS_brugere
WHERE
RIGHT('4526252423', LENGTH(Mobilnummer)) = Mobilnummer


Den er ikke 100% sikker og fejler, hvis jeg modtager en SMS fra nummeret
126252423.

Jeg kan så lave nogle automatisk check på om nummeret starter med 45 og
sende mig en mail, hvis det ikke gør, så jeg kan undersøge om der er fusk
eller SMS fra andre lande.

Alternativt kan jeg som foreslået sidst bede brugere angive deres
mobilnummer med landekode.


> En anden mulighed er
>
> ... WHERE '4526252423' LIKE ('%' + Mobilnummer)
>
> - men den er lidt mere usikker, fordi der fx kan matches på en tom
> streng.

Den matchede ingenting i MySQL, men returnerede heller ingen fejl.

Tak for hjælpen.
Mit umiddelbare problem er løst og jeg kan komme videre

Mvh
Jimmy



Lars Dybdahl (07-02-2003)
Kommentar
Fra : Lars Dybdahl


Dato : 07-02-03 14:15

Jimmy wrote:
> Hvordan løses mit problem via SQL?

Du skriver ikke, hvilken database, du benytter, men prøv at skrive noget i
retning af:

where concat('45',telefonnummer)='4526252423'

Det afhænger lidt af SQL varianten, hvordan man skriver det.

Lars.

--
Dybdahl Engineering
http://dybdahl.dk/

Jimmy (07-02-2003)
Kommentar
Fra : Jimmy


Dato : 07-02-03 14:41


"Lars Dybdahl" <lars@dybdahl.dk> wrote in message
news:3e43b134$0$13154$edfadb0f@dread11.news.tele.dk...
> Jimmy wrote:
> > Hvordan løses mit problem via SQL?
>
> Du skriver ikke, hvilken database, du benytter, men prøv at skrive noget i
> retning af:
>
> where concat('45',telefonnummer)='4526252423'

Ovenstående var en af de muligheder jeg testede, og det virker fint.

Problemet er jo at 45 er en landekode og jeg derfor ikke kan tilføje 45 hvis
brugeren sender fra et andet land end Danmark.

Mvh
Jimmy



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste