Avatar billede ameq Nybegynder
02. april 2002 - 12:14 Der er 15 kommentarer og
1 løsning

SQL

kan jeg lave en sql select sætting hvor den tage ca (%) men den ikke tager ikke mellenrum med ????
Avatar billede beldring Nybegynder
02. april 2002 - 12:14 #1
uddyb lidt....
Avatar billede ameq Nybegynder
02. april 2002 - 12:26 #2
f.eks at jeg vil søg efter win 2k med der er mellemrum så hvis der også står win xp eller noget andet med mellenrum i min database så tager den også det hvis jeg laver en ca.. men hvis søg ordet er win så skal den kunne tage windows 95 fordi der står win.... jeg ved ikkeom det er nok
???
Avatar billede rou Nybegynder
02. april 2002 - 12:28 #3
SELECT * FROM dintabel WHERE ditfelt LIKE '%WIN%' AND NOT ditfelt LIKE '%WIN %'

Kan det gøre det?
Avatar billede rou Nybegynder
02. april 2002 - 12:30 #4
Hvis du vil have det case insensitive...

<%
sql = "SELECT * FROM dintabel WHERE LOWER(ditfelt) LIKE '%"& LCase(str) &"%' AND NOT LOWER(ditfelt) LIKE '%"& LCase(str) &" %'
%>

Det er godt nok skrevet til MSSQL...
Avatar billede ameq Nybegynder
02. april 2002 - 12:36 #5
nej den skal skulle tage fra et request.form... så hvis det er mellerum skal den kunne det.....
Avatar billede rou Nybegynder
02. april 2002 - 12:37 #6
det sætter du bare ind i str...

<%
sql = "SELECT * FROM dintabel WHERE LOWER(ditfelt) LIKE '%"& LCase(Request.Form(ditfelt)) &"%' AND NOT LOWER(ditfelt) LIKE '%"& LCase(Request.Form(ditfelt)) &" %'
%>
Avatar billede rou Nybegynder
02. april 2002 - 12:39 #7
Nåå, hvis brugeren selv skriver mellemrum, skal det med?

<%
sql = "SELECT * FROM dintabel WHERE LOWER(ditfelt) LIKE '%"& LCase(Request.Form(ditfelt)) &"%'"

If(InStr(Request.Form("ditfelt")," ") = 0) Then
  sql = sql & " AND NOT LOWER(ditfelt) LIKE '%"& LCase(Request.Form(ditfelt)) &" %'"
End If
%>
Avatar billede ameq Nybegynder
02. april 2002 - 12:42 #8
kan du ikke lige fjere casenen.....
Avatar billede rou Nybegynder
02. april 2002 - 12:44 #9
<%
sql = "SELECT * FROM dintabel WHERE ditfelt LIKE '%"& Request.Form(ditfelt) &"%'"

If(InStr(Request.Form("ditfelt")," ") = 0) Then
  sql = sql & " AND NOT ditfelt LIKE '%"& Request.Form(ditfelt) &" %'"
End If
%>
Avatar billede ameq Nybegynder
02. april 2002 - 12:54 #10
okey der set lidt beder ud .. men kan du ikke lige forklarer den =) ????
Avatar billede rou Nybegynder
02. april 2002 - 13:00 #11
Du beder om meget, hvad? :)

Det er ellers ret simpelt asp og SQL...

Først opbygger man strengen der hedder "sql" til at være den basale query, som er en SELECT fra tabellen "dintabel", med en WHERE clause som gør at der kun hentes rækker hvor feltet "ditfelt" indeholder den tekst som findes i formfeltet "ditfelt".
At de hedder det samme er måske lidt uheldigt, men det gør jeg normalt for at det er nemmere at gennemskue koden.

Dernæst checker man i ASP om formfeltet indeholder et mellemrum, og hvis det IKKE gør, udbygges query'en med endnu en where clause, som denne gang siger at feltet ikke må indeholde den samme tekst efterfulgt af et mellemrum.

Prøv at kigge lidt nærmere på det, så skulle det egentligt være simpelt nok.

Der er en grund til at ASP er et "basic" sprog, og at der er ordet SIMPLE i sql :)
Avatar billede ameq Nybegynder
02. april 2002 - 13:02 #12
If(InStr(Request.Form("ditfelt")," ") = 0) Then
  sql = sql & " AND NOT ditfelt LIKE '%"& Request.Form(ditfelt) &" %'"
End If
Avatar billede rou Nybegynder
02. april 2002 - 13:10 #13
Hvad vil du sige med din sidste posting?
Avatar billede ameq Nybegynder
02. april 2002 - 17:43 #14
det var den som du skulle for klarer....
Avatar billede rou Nybegynder
02. april 2002 - 17:51 #15
Jamen, det har jeg jo gjort. Check afsnit 2 i forklaringen
Avatar billede ameq Nybegynder
20. maj 2002 - 15:04 #16
klart
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
Kurser inden for grundlæggende programmering

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