20. oktober 2000 - 16:26Der er
12 kommentarer og 1 løsning
Problemer med LIKE
Jeg har et problem med denne sætning:
rs.Open \"SELECT type, karakter FROM tabel1 WHERE (pris LIKE \'\" & varPris & \"\') AND (farve LIKE \'%\" & varFarve & \"%\') ORDER BY type DESC, pris\", Conn, 0, 1
Men den resultere kun dem hvor pris = varPris (som den skal) og farve = varFarve.
dvs. hvis farve er sort, resultere den ikke poster der hedder fx \"sort, gul, hvid\", men kun dem der hedder \"sort\"
Jeg har stirret på dette hele dagen, men nu gider jeg altså snart ikke mere! Det er til at blive lettere sindsforvirret af!
rs.Open \"SELECT type, karakter FROM tabel1 WHERE (pris LIKE \'\" & varPris & \"\') AND (farve LIKE \'\" & varFarve & \"\') ORDER BY type DESC, pris\", Conn, 0, 1
Du skal fjerne dine % (jokers) hvis du ku er på jagt efter farve = \"sort\".
og dog...det vil optimere din query en smule, at brug =, hvis du er SIKKER på at farverne altid er en bestemt form (eg. Sort og aldrig Sorte...)
rs.Open \"SELECT type, karakter FROM tabel1 WHERE (pris LIKE \'\" & varPris & \"\') AND (farve = \'\" & varFarve & \"\') ORDER BY type DESC, pris\", Conn, 0, 1
Vi taler vist forbi hinanden, det jeg ønsker er at den også viser de posts der hedder \"sort, gul, hvid\" når variablen er \"sort\" eller bare \"sor\" eller \"ort\" whatever... håber I forstår hvad jeg mener.
rs.Open \"SELECT type, karakter FROM tabel1 WHERE (pris LIKE \'\" & varPris & \"\') AND (farve = \'%\" & varFarve & \"%\') ORDER BY type DESC, pris\", Conn, 0, 1
rs.Open \"SELECT type, karakter FROM tabel1 WHERE pris LIKE \" & varpris & \" AND farve = \'%\" & varfarve & \"%\' ORDER BY type DESC, pris\", Conn, 0, 1
Den her virker altså fint for mig... SELECT type, karakter FROM tabel1 WHERE pris LIKE \'\" & varPris & \"\' AND farve LIKE \'%\" & varFarve & \"%\' ORDER BY type DESC, pris
Jeg har lige testet med en af mine egne SQL Server 7.0 databaser... prøv at sammenligne min query (med statiske data) og din query:
SELECT Fornavn, Brugernavn FROM login WHERE Fornavn LIKE \'TesPersen\' AND Brugernavn LIKE \'%e%\' ORDER BY Brugernavn DESC, Fornavn
SELECT type, karakter FROM tabel1 WHERE pris LIKE \'\" & varPris & \"\' AND farve LIKE \'%\" & varFarve & \"%\' ORDER BY type DESC, pris
I min database får jeg returneret ALLE Testperson\'er hvor der indgår et e i deres brugernavn... Har du tjekket at der bliver fyldt data i dine variabler ???
Jeg har lige fået en mail fra sys-adminen, den server hvor intranettet ligger er en smule syg, det er derfor, det er et eller andet med software... what do I know? men det skulle være fixet til i morgen, så desværre løste du ikke mit problem, for det problem jeg havde var ikke det jeg beskev. Men for din store indsats får du 50 point.
Mange tak...for at kunne dele point kræves at der ligger mindst 2 svar, det vil til en anden gang sige at hvis du ikke vil ud med samtlige point skal du selv oprette et svar og så acceptere avanceret!
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.