/ 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
MySQL anførselstegn & ORDER BY
Fra : Jesper Brunholm


Dato : 10-02-03 15:19

Hej Folks

Jeg har en query som henter en serie titler af Pontoppidan ud på en
side, og som gerne skulle stille dem op alfabetisk. Det gør den også
fint, men enkelte titler (ikke alle) skal have anførselstegn forrest, og
så går det galt. Alle med anførselstegn kommer først, da der
(selvfølgeligt) sorteres på anførselstegnet...

Kan jeg gøre noget smart, såsom ORDER BY(her gøres noget reg-x
/stripslashes/hvad ved jeg ikke - det er derfor jeg spørger
eller andet godt?

pf tak

mvh

Jesper Brunholm

--
H.C. Andersen-Centret med nyt design: <http://www.andersen.sdu.dk/>
Phønix - dansk folk-musik fra unge musikere - <http://www.phonixfolk.dk/>


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


Dato : 10-02-03 15:31

Jesper Brunholm skrev:

> Kan jeg gøre noget smart, såsom ORDER BY(her gøres noget reg-x
> /stripslashes/hvad ved jeg ikke - det er derfor jeg spørger
> eller andet godt?

Hvis det kun drejer sig om anførselstegn kan du vel benytte en form
for replace (kender ikke mysql-funktionsnavne, men går ud fra at en
sådan funktion findes).

- altså:

...ORDER BY Replace(titel, '"', '')


En anden mulighed er at indføre et egentligt sorteringsfelt. Det
bruger jeg selv flere steder, fx når jeg gerne vil have "The
Foobars" sorteret som "Foobars, The", men vist som "The Foobars".

Det fylder naturligvis lidt mere, men er til gengæld hurtigere at
sortere på.
--
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)

Jesper Brunholm (10-02-2003)
Kommentar
Fra : Jesper Brunholm


Dato : 10-02-03 16:10

Jens Gyldenkærne Clausen wrote:
> Jesper Brunholm skrev:
>
>
>>Kan jeg gøre noget smart, såsom ORDER BY(her gøres noget reg-x
>>/stripslashes/hvad ved jeg ikke - det er derfor jeg spørger
>> eller andet godt?
>
>
> Hvis det kun drejer sig om anførselstegn kan du vel benytte en form
> for replace (kender ikke mysql-funktionsnavne, men går ud fra at en
> sådan funktion findes).

Jo - det gør den - men det ligner desværre at det ikke er legal MySQL at
bruge den i ORDER BY - kontekst. (test-)Query henh-vis fejl:

SELECT *
FROM Dokumenter
ORDER BY REPLACE (
Titel,
'&quot;',
''
)
LIMIT 0,
30

MySQL returnerede:

You have an error in your SQL syntax near 'REPLACE ( Titel, '&quot;','')
LIMIT 0, 30' at line 1

Er der nogen der ved om det ER fordi det ikke er legal syntaks?

Jeg har fundet replace i String_functions (nederst)

<http://www.mysql.com/doc/en/String_functions.html> og
Replace Syntax <http://www.mysql.com/doc/en/REPLACE.html>

i Mysql-manualen, det hjælper ikke mig, men hvis det gør en af jer...

> En anden mulighed er at indføre et egentligt sorteringsfelt. Det
> bruger jeg selv flere steder, fx når jeg gerne vil have "The
> Foobars" sorteret som "Foobars, The", men vist som "The Foobars".

> Det fylder naturligvis lidt mere, men er til gengæld hurtigere at
> sortere på.

Jeg har overvejet det, men ville helst udenom den løsning


mvh

Jesper Brunholm

--
H.C. Andersen-Centret med nyt design: <http://www.andersen.sdu.dk/>
Phønix - dansk folk-musik fra unge musikere - <http://www.phonixfolk.dk/>


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


Dato : 10-02-03 16:15

Jesper Brunholm skrev:

> You have an error in your SQL syntax near 'REPLACE ( Titel,
> '&quot;','')

Er det mon semikolonet der giver problemer? Har du prøvet at lave
en ".. ORDER BY Replace(Titel, 'a', '')" (bare for at teste).
--
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)

Jesper Brunholm (10-02-2003)
Kommentar
Fra : Jesper Brunholm


Dato : 10-02-03 16:19

Jens Gyldenkærne Clausen wrote:
> Jesper Brunholm skrev:
>
>
>>You have an error in your SQL syntax near 'REPLACE ( Titel,
>>'&quot;','')
>
> Er det mon semikolonet der giver problemer? Har du prøvet at lave
> en ".. ORDER BY Replace(Titel, 'a', '')" (bare for at teste).

Jeg tænkte det samme - så ja - og med samme resultat

Fejl

SQL-forespørgsel :

SELECT *
FROM Dokumenter
ORDER BY REPLACE (
`Titel` ,
'A',
''
)
LIMIT 0,
30

MySQL returnerede:

You have an error in your SQL syntax near 'REPLACE ( `Titel`, 'A','')
LIMIT 0, 30' at line 1


/Jesper


--
H.C. Andersen-Centret med nyt design: <http://www.andersen.sdu.dk/>
Phønix - dansk folk-musik fra unge musikere - <http://www.phonixfolk.dk/>


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


Dato : 10-02-03 16:25

Jesper Brunholm skrev:

> Jeg tænkte det samme - så ja - og med samme resultat

Hm - hvad så hvis du inkluderer replace-koden i din feltliste?

Altså:

   SELECT *, REPLACE (`Titel` , 'A', '') as sortering
   FROM Dokumenter
   ORDER BY REPLACE (`Titel` , 'A', '')

- evt. med "..ORDER BY sortering"
--
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)

Jesper Brunholm (10-02-2003)
Kommentar
Fra : Jesper Brunholm


Dato : 10-02-03 16:32

Jens Gyldenkærne Clausen wrote:
> Jesper Brunholm skrev:
>
>>Jeg tænkte det samme - så ja - og med samme resultat
>
>
> Hm - hvad så hvis du inkluderer replace-koden i din feltliste?
>
> Altså:
>
>    SELECT *, REPLACE (`Titel` , 'A', '') as sortering
>    FROM Dokumenter
>    ORDER BY REPLACE (`Titel` , 'A', '')
>
> - evt. med "..ORDER BY sortering"

Det virker! - du er en stjerne - mille graz & tak for hjælpen!

/Jesper Brunholm

--
H.C. Andersen-Centret med nyt design: <http://www.andersen.sdu.dk/>
Phønix - dansk folk-musik fra unge musikere - <http://www.phonixfolk.dk/>


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

Månedens bedste
Årets bedste
Sidste års bedste