08. september 2001 - 22:02Der er
9 kommentarer og 2 løsninger
SQL & AND
JEg har en side hvor man kan hente resultatet fra en database ved at søge på amt. Jeg søger på amtet ved at bruge postnumre, og de stemmer ikke lige overens, så man f.eks. kan søge på 9000-9900 for nordjylland f.eks.. Derfor har jeg lavet en sql forespørgsel der spørg om op til ni postnumre, men den kan ikke hente nogen resultater frem overhovedet, og umiddelbart ser forespørglen rigtig nok ud. Her er foresørgslen: Select * From ba Where kategori like \'%%\' AND postnr >= 9000 AND postnr <= 9541 AND postnr >= 9560 AND postnr <= 9610 AND postnr >= 9640 AND postnr <= 9990 AND postnr >= 9000 AND postnr <= 9541 AND postnr >= 9000 AND postnr <= 9541 AND postnr >= 9000 AND postnr <= 9541 AND postnr >= 9000 AND postnr <= 9541 AND postnr >= 9000 AND postnr <= 9541 AND postnr >= 9000 AND postnr <= 9541 order by navn;
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Ok, det havde jeg ikke lige tænkt på:) Kategori lik... er fordi den nogen steder bruges til at hente dem der f.eks. spiller trommer, men i dette tilfælde indeholder den ikke noget. Når jeg kigger nærmere kan jeg godt se at min ide ikke holder. Det den skal bruges til er at man på en side kan vælge hvilket amt man ønsker musikere fra (i dette tilfælde nordjylland) og dette gøres ved at tkke på et kort. I databasen er der bl.a. en kolonne der indeholder postnumre(\"postnr\"), og det er ud fra denne jeg vil \"finde\" amtet. Problemet er jo bare at amt & postnumre ikke følges logisk ad, så jeg ved ikke om der en anden måde at gøre det på ud over at skulle tilføre en kolonne der indeholder amtet hvilket på længere sigt vil kræve en masse manuelt arbejde.
Håber det bragte dig lidt bedre på sporet af min sindsyge(eller umulige:)) ide.
Nej, det har jeg kun på et stykke papir, men du tænker på om man kunne lave en funktion hvor den går ind og tjekker det via den vej og så sætter det ind?
Enten det eller også have en tabel i databasen med disse oplysninger...
Jeg går ud fra at dit problem er at fange alle trommeslagere der bor i et bestemt amt, og det gør at du skal søge indenfor flere forskellige nummerintervaller. Eksempelvis postnr 9000 til 9200 og så yderligere et interval mellem 9500 og 9600. Nu kan jeg ikke se hvilke muligheder du har for at opbygge din SQL dynamisk, men dette eksempel skulle gerne resultere i noget i stil med
SELECT * from ba WHERE kategori like \'%Trommer%\' AND ( (postnr >= 9000 and postnr <= 9200) OR (postnr >= 9500 and postnr <= 9600) )
Du skal altså have en stor parantes udenom ALLE dine postnr-klausuler, og hvert interval skal være adskilt af en OR, for et nummer kan jo kun ligge i det ene interval ELLER det andet. Ikke begge to. Det enkelte interval (eksempelvis 9000-9200) skal naturligvis være lavet med en AND, for nummeret skal både være lig med eller større 9000 og lig med eller mindre end 9200 før det er et rigtigt nummer.
Jeg kan ikke lige huske det af fri hukommelse, men jeg mener der i SQL også er en BETWEEN kommando, der gør det lidt nemmere at søge efter numre i et interval istedet for at bruge alle de < og > hele tiden.
Jeg fik den til at virke med din ide SBM(and (( postnr >= 900...), det var squ dejligt, between funktionen kunne jeg ikke få til at virke til gengæld. Grunden til at horsmark har fået lidt af medaljen er på grund af det faktisk ret fede link, tak for det!
Tak for hjælpen begge 2, undskyld den sene svartid, men jeg har ikke haft mulighed for at svare før nu.
M.V.H. Danny Krøger
Synes godt om
Ny brugerNybegynder
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.