Avatar billede RJFreelance Praktikant
08. februar 2009 - 12:40 Der er 14 kommentarer og
1 løsning

Mysql søgning - hjælp

Hejsa.
Kunne ikke finde på en bedre titel, men skal finde alle poster i en tabel, hvor at et felt ligger inden for en talrække.
F.eks.

Jeg vælger 15-20, så skal min mysql gå ind og finde alle rækker hvor et felt, indeholder et tal mellem 15 og 20.

Hvordan gøres dette nemmest?
Avatar billede majbom Novice
08. februar 2009 - 12:50 #1
$arr = explode("-","15-20");

$res = mysql_query("SELECT * FROM tabel WHERE tal<=".$arr[1]." AND tal >=".$arr[0]) or die(mysql_error());

utestet...
Avatar billede RJFreelance Praktikant
08. februar 2009 - 13:27 #2
Den vil ikke give et resultat, selvom den burde finde noget.
Avatar billede majbom Novice
08. februar 2009 - 13:48 #3
virker det her:

$res = mysql_query("SELECT * FROM tabel WHERE tal<=20 AND tal >=15") or die(mysql_error());

?
Avatar billede RJFreelance Praktikant
08. februar 2009 - 13:51 #4
Jeg bruger slet ikke arr variablen, så det kan ikke være det.

SELECT * FROM t_users WHERE alder1 <= 40 AND alder1 >= 45 ORDER BY username

Sådan ser min select ud.
Avatar billede hmortensen Nybegynder
08. februar 2009 - 13:58 #5
Der er ged i tegnene.

Nemmere at bruge BETWEEN, så skal man ikke vende tegn rigtigt:
SELECT * FROM t_users WHERE alder1 BETWEEN 40 AND 45 ORDER BY username
Avatar billede majbom Novice
08. februar 2009 - 14:02 #6
hvad type er feltet alder1?
Avatar billede majbom Novice
08. februar 2009 - 14:03 #7
-> hmortensen - ja det kan man osse, men:

SELECT * FROM t_users WHERE alder1 <= 40 AND alder1 >= 45 ORDER BY username

burde nu også virke... operatorerne står rigtigt nok
Avatar billede hmortensen Nybegynder
08. februar 2009 - 14:10 #8
En værdi kan da ikke både være mindre eller lig 40 OG være større eller lig 45

SELECT * FROM t_users WHERE alder1 >= 40 AND alder1 <= 45 ORDER BY username
Avatar billede majbom Novice
08. februar 2009 - 15:36 #9
nej det er rigtigt, det er osse forkert dte jeg har skrevet.

men det eksempel med arrayet er også omvendt, så det burde virke fint nok
Avatar billede RJFreelance Praktikant
08. februar 2009 - 15:44 #10
Hmortensens svar var smartest, så det bruger jeg.. :) Smid svar.

Og tak
Avatar billede majbom Novice
08. februar 2009 - 17:04 #11
ikke fordi jeg er ude efter point, men du skal vel bruge explode alligevel, eller?
Avatar billede RJFreelance Praktikant
08. februar 2009 - 17:15 #12
Nej, for jeg modtager ikke en streng der lyder sådan, jeg modtager "15" og kan derfor bare addere 5 og så har jeg modsatte nummer. Det syntes jeg var nemmest.
Avatar billede majbom Novice
08. februar 2009 - 18:27 #13
nååh okay, ja hvis intervallet altid er 5, er det jo lige så smart, og nok ikke så ressourcekrævende :)
Avatar billede hmortensen Nybegynder
08. februar 2009 - 18:32 #14
Vi kan vel dele (hvis det er muligt i den nye version)
Avatar billede majbom Novice
08. februar 2009 - 18:40 #15
nej det er lige meget, jeg bidrog jo ikke med en løsning :)
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