05. december 2003 - 14:33
Der er
4 kommentarer og 1 løsning
Problemer med min SQL!
Hej med jer.... Jeg har en lille søge funktion, som næsten virker som den skal. Jeg har i min job tabel et felt der hedder "Active" som er af typen bit/boolean. Hvis f.eks. et oprettede job i databasen har Active = 1 så skal den vises på job siden. Og omvendt hvis Active = 0 derimod, så skal den ikke vises. Mit problem er, at når jeg laver en søgning uden at instaste noget i søgefeltet, så vises ALT uanset om jeg definere Active = 1 i min SQL eller ikke. Hvad gør jeg galt?!?! Kode: --------------------------------------------- SELECT JobID, Title, Description, KeyWords " & _ "FROM tblJobs " & _ "WHERE Title LIKE '%" & searchString.ToString & "%' " & _ "OR Description LIKE '%" & searchString.ToString & "%' "& _ "OR KeyWords LIKE '%" & searchString.ToString & "%' " & _ "AND Active = 1 " & _ "ORDER BY JobID ASC; --------------------------------------------- Håber at høre fra nogen Mvh DN
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
05. december 2003 - 14:36
#1
proev det her.... SELECT JobID, Title, Description, KeyWords " & _ "FROM tblJobs " & _ "WHERE (Title LIKE '%" & searchString.ToString & "%' " & _ "OR Description LIKE '%" & searchString.ToString & "%' "& _ "OR KeyWords LIKE '%" & searchString.ToString & "%') " & _ "AND Active = 1 " & _ "ORDER BY JobID ASC;
05. december 2003 - 14:38
#2
Det er ret nemt. du benytter OR og AND uden at angive parenteser. Dermed skal blot et af dine kriterier være opfyldt. Brug i stedet: Where (title like .... or keywords like ...) and (active=1)
05. december 2003 - 14:39
#3
Ja, jeg skulle lige til at forslå det samme. Du mangler en parantes, da SQL enginen ellers vil forstå de således. (titel=søgestreng) eller (description=søgestreng) eller (keywords=søgestreng og active=1) Hvis du sætter en parantes ind som inglenook har vist, så forstår den sql'en således (titel=søgestreng eller description=søgestreng eller keywords=søgestreng) og (active=1)
05. december 2003 - 14:52
#4
>>> inglenook's virker! ALtså det her virker: (titel=søgestreng eller description=søgestreng eller keywords=søgestreng) og active=1 Det her virker ikke: (titel=søgestreng eller description=søgestreng eller keywords=søgestreng) og (active=1) Kom med et svar. Og tak for hjælpen til jer alle! :) God jul og go' weekend!
05. december 2003 - 15:50
#5
Ja og ogodt nytaar......
Computerworld tilbyder specialiserede kurser i database-management