Avatar billede darkmoon Nybegynder
08. august 2001 - 15:41 Der er 22 kommentarer og
2 løsninger

regexp

Hejsa

jeg skal ha lidt hjælp til en regexp i mysql. Den skal kunne følgende. Find felt hvor første ciffer er mellem 1 og 9 og andet ciffer er hvad jeg beslutter den skal være.

F.eks. vis nogle rækker hedder:
1526
1556
1956
1531
1326

skal den finde, hvis jeg søger på 2. ciffer = 5 : 1526, 1556 og 1531
Avatar billede disky Nybegynder
08. august 2001 - 15:43 #1
brug like


select * from tabel where tal like \'15%\'


det der \'likes\' på genererer du så i dit program.
Avatar billede erikjacobsen Ekspert
08. august 2001 - 15:56 #2
\'^[0-9]5\'
Avatar billede disky Nybegynder
08. august 2001 - 15:59 #3
erik:
har du noget dokumentation om dette ?
Avatar billede erikjacobsen Ekspert
08. august 2001 - 16:03 #4
Avatar billede disky Nybegynder
08. august 2001 - 16:05 #5
okay du vil ikke svare, fair nok.

Sjovt du ikke sagde det til darkmoon.
Avatar billede darkmoon Nybegynder
08. august 2001 - 16:16 #6
fint, det virker, hvad så hvis man vil lave en søgning på det resultat man lige har fået ?

(hvis det falder meget ud over det allerede oprettede spørgsmål så hælder jeg nogle flere points i)
Avatar billede erikjacobsen Ekspert
08. august 2001 - 18:48 #7
Hvad mener du med jeg ikke vil svare? I dokumentationen for mysql står
der en masse om regulære udtryk. Det direkte link må I selv lige lede efter...:)

\"en søgning på det resultat man lige har fået\" ?? Hvad mener du? Du kan jo
altid sætte en ekstra betingelse på din WHERE i Sql-sætningen.
Avatar billede darkmoon Nybegynder
08. august 2001 - 19:53 #8
ok, jeg har måske ikke udtrykt mig klart nok. Kan man knalde en REGEXP in i f.eks. en DISTINCT så den kund henter en af hver af hver a disse:

1523
2566
2577
3599
3515

så den kun henter den første 25... den første 35... osv ?
Avatar billede erikjacobsen Ekspert
08. august 2001 - 20:52 #9
jah, kig på fx LIMIT 35 i forbindelse med en SELECT
Avatar billede darkmoon Nybegynder
08. august 2001 - 21:26 #10
øeh, kig hvor ?
Avatar billede erikjacobsen Ekspert
08. august 2001 - 21:28 #11
Jah, i documentationen på www.mysql.com
Avatar billede darkmoon Nybegynder
08. august 2001 - 21:56 #12
nej nej, den første rækker der har et varenr der begynder med 35*** osv, det er ikke limit :)
Avatar billede darkmoon Nybegynder
08. august 2001 - 21:56 #13
argh, række that is :)
Avatar billede repsac Nybegynder
08. august 2001 - 22:08 #14
Nu lige en sidebemærkning ... kan man ikke bruger \"_5%\" til at finde tal der har 5 som andet ciffer???
- eller også er det den gamle SQL-standard ...
Avatar billede repsac Nybegynder
08. august 2001 - 22:18 #15
Nope den er god nok ...
SELECT * FROM tabel WHERE whatever LIKE \"_5%\"
- og hvad er det så du vil mere?
Avatar billede darkmoon Nybegynder
08. august 2001 - 22:21 #16
jeg vil lave en limit på det første tal only.
Avatar billede repsac Nybegynder
08. august 2001 - 22:21 #17
Mener du at der maksimalt må være x-antal tegn efter 5-tallet?
Avatar billede repsac Nybegynder
08. august 2001 - 22:23 #18
Jeg fatter det stadig ikke ... limit ... hvilket limit?
Avatar billede erikjacobsen Ekspert
08. august 2001 - 22:24 #19
Ikke god nok, repsac, hvis der står A5blabla  :)
Avatar billede repsac Nybegynder
08. august 2001 - 22:27 #20
Nej nej, men din database struktur er ikke særligt god hvis du har
1523
2566
2577
3599
3515
og
A5blabla
i samme kolonne ... (?) - men jo ... jeg forstår godt din pointe. :)
Avatar billede darkmoon Nybegynder
08. august 2001 - 22:28 #21
sorry, jeg klokker rundt i limit og distinct.. here goes..:

ok, jeg har en bunke varenr. som ser således ud: 152699,15684,25696,25678 osv osv. Hvis jeg laver en query al la SELECT * FROM tabel WHERE whatever LIKE \"_5%\" får jeg alle de varer hvis varenr har 5 som andet ciffer.

Derefter vil jeg kun have en af hver, men den skal kun kigge på det første ciffer. dvs, jeg vil vide at der i min søgning er varer der starter med 1,3, 5 og 9...

/thomas
Avatar billede darkmoon Nybegynder
08. august 2001 - 22:31 #22
Der står ikke A5blabla ;) ..det er rene talværdier :)
Avatar billede darkmoon Nybegynder
09. august 2001 - 11:08 #23
ingen bud ?
Avatar billede erikjacobsen Ekspert
09. august 2001 - 11:21 #24
Jo, da, skal jeg virkelig lave alt arbejdet

SELECT distinct left(whatever,1) FROM tabel WHERE whatever LIKE \"_5%\"
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester