Avatar billede martinbk Nybegynder
29. januar 2004 - 18:12 Der er 10 kommentarer og
2 løsninger

begrænse SQL query på begyndelsestegn

jeg sidder og tumler med et site hvor jeg skal bruge en alfabetisk sorteret liste.

tænkte umiddelbart noget alla SELECT * FROM tabel WHERE felt LIKE 'tegn%'

men denne metode giver problemer hvis jeg vil lave et opslag på samtlige poster som begynder med et tal altså en 0-9 søgning.

er der en smartere metode, hvorved man kan genere en sådan liste
Avatar billede schaefner Juniormester
29. januar 2004 - 18:16 #1
SELECT * FROM tabel WHERE felt REGEXP '^[0-9]'
Avatar billede limemedia Nybegynder
29. januar 2004 - 18:16 #2
SELECT *
FROM tabel
WHERE LOWER(LEFT(felt,1))='a'

se også http://www.mysql.com/doc/en/String_functions.html
Avatar billede maniacdog Nybegynder
29. januar 2004 - 18:16 #3
http://www.darkface.pp.se/mysql/manual_105.html

_  Matches exactly one character. 

Dvs. noget ala:

select * from tabel1 where row1 is like 'd____';

dvs. du her leder efter noget hvor det første er 'd' og de resterende er lige meget bare ordet er de antal tegn :-)

Håber det hjalp lidt.
Avatar billede schaefner Juniormester
29. januar 2004 - 18:17 #4
og:
SELECT * FROM tabel WHERE SUBSTRING(felt,1,1) = 'a'
Avatar billede limemedia Nybegynder
29. januar 2004 - 18:17 #5
LIKE søgninger i denne sammenhæng er alt for langsomme.
Avatar billede martinbk Nybegynder
29. januar 2004 - 18:20 #6
schaefner, lige et spørgsmål til din første post. vil den ikke give mig samtlige poster som indeholder et tal (er ikke satans stærk i regulære udtryk) ?
Avatar billede limemedia Nybegynder
29. januar 2004 - 18:23 #7
schaefner's første vil returnere de rækker der starter med et tal mellem 0 og 9

mit svar og schaefners andet er basalt set ens, blot hvor jeg gør tegnet fra tabellen lowercase, således der ikke er forskel på a og A som begyndelses bogstav. Om du bruger substring eller left, tror jeg ikke der er nogen forskel i, performance mæssigt that is
Avatar billede martinbk Nybegynder
29. januar 2004 - 18:26 #8
ok, jeg venter lige på schaefner smider et svar :)
Avatar billede schaefner Juniormester
29. januar 2004 - 18:33 #9
svar :)
Avatar billede schaefner Juniormester
29. januar 2004 - 18:33 #10
ja, det er nok en ide at gøre det lowercase når der sammenlignes :)
Avatar billede martinbk Nybegynder
29. januar 2004 - 18:35 #11
håber pointfordelingen er nogenlunde rimelig, og maniacdog kan ikke bruge dit svar da længden af stregen kan variere fra 2 til 200 tegn
Avatar billede maniacdog Nybegynder
30. januar 2004 - 14:19 #12
Okidokie :-)

Go' weekend
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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