Avatar billede kimlarsen1978 Nybegynder
14. juli 2007 - 20:23 Der er 10 kommentarer og
1 løsning

Replace med REGEXP

Hejsa
Hvordan laver jeg en replace med et regulært udtryk i MySQL?

*******************
SELECT .... overskrift REGEXP '[^a-z0-9æøåÆØÅ]' ....
*******************
giver blot 1 eller 0 (match fundet, match ik fundet), jeg har prøvet med:

********************
SELECT .... replace(overskrift, REGEXP '[^a-z0-9æøåÆØÅ]','') ....
********************

Men det virker ikke...

Hvordan kan jeg gøre det eller måske noget der giver samme effekt?
Avatar billede arne_v Ekspert
14. juli 2007 - 20:53 #1
Det mener jeg ikk at du kan i MySQL.

Flyt den funktionalitet fra SQL til din applikation.
Avatar billede kimlarsen1978 Nybegynder
14. juli 2007 - 23:08 #2
Det er bare ikke så let for jeg vil gerne selectere alle dem der begynder med fx. M i overskrift, men der skal ses bort fra specialtegn så fx noget med overskrift

"Monster" god aften i Skagen

skal også med ud da monster begynder med M.

Jeg kunne måske lave en masse replace på charkoder, men jeg hvor finder jeg en kompletliste over specialtegn og deres charkode?
Avatar billede arne_v Ekspert
14. juli 2007 - 23:11 #3
Det kan du da godt med REGEX.

SELECT * FROM tabel WHERE oberskrift REGEXP '[".,]*M.*'

eller noget lignende.
Avatar billede kimlarsen1978 Nybegynder
14. juli 2007 - 23:26 #4
Ja, det er jo sådan set rigtig nok - det arbejder jeg lige lidt videre med. Måske det kan løse mit problem...
Avatar billede kimlarsen1978 Nybegynder
14. juli 2007 - 23:36 #5
Jeg kommer ikke helt i mål, for min sortering bliver ikke rigtig...

ORDER BY overskrift REGEXP '[^a-z0-9æøåÆØÅ]' ASC

altså en sortering hvor der kun ses efter a-å og 0-9. Men "ORDER BY overskrift REGEXP '[^a-z0-9æøåÆØÅ]' ASC" giver bare 0 eller 1 og sorterer efter det
Avatar billede kimlarsen1978 Nybegynder
14. juli 2007 - 23:57 #6
Men du har helt ret med hensyn til at fange dem med forbogstav

SELECT * FROM tabel WHERE overskrift REGEXP '^[^a-z0-9æøåÆØÅ]*M.*'

Det giver mig alle dem med M i overskrift, hvor der er set bort fra specialtegn i starten af teksten

så mangler jeg faktisk bare at få min sortering til virke
Avatar billede kimlarsen1978 Nybegynder
15. juli 2007 - 00:00 #7
Man kunne måske lave en replace i asp koden og samle det hele i et array og sortere det og derefter udskrive det - men det lyder lidt omstændigt og det performer nok heller ikke så godt...

Nogle ideér til hvordan jeg får sorteringen på plads?
Avatar billede arne_v Ekspert
15. juli 2007 - 00:59 #8
Jeg tror at det en lidt mere tricky en.

Du burde kunne definere din egen collation i share/charsets og så angive den i
din ORDER BY.

Men jeg har aldrig prøvet.
Avatar billede kimlarsen1978 Nybegynder
15. juli 2007 - 11:15 #9
Hmmm, det siger mig ikke umiddelbart noget, jeg Googler mig lidt frem...
Tak for din hjælp. Læg gerne et svar :)
Avatar billede arne_v Ekspert
15. juli 2007 - 14:48 #10
svar
Avatar billede kimlarsen1978 Nybegynder
15. juli 2007 - 15:46 #11
:o)
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