Avatar billede macriis Nybegynder
26. marts 2004 - 16:22 Der er 14 kommentarer og
1 løsning

SQL fejl: AND kolonne NOT LIKE

Hej

Dette virker - jahuuuu:

"SELECT kundenavn, noter FROM kunde WHERE noter LIKE '%demo%'"

Men det gør dette ikke - ØV:

"SELECT kundenavn, noter FROM kunde WHERE noter LIKE '%demo%'  AND demoTlf NOT LIKE '%true%'"

Sidstnævnte er måske syntakskorrekt, men der returneres intet. Jeg ved at der kun er én post i kolonnen demoTlf. demoTlf har datatypen tekst. Databasen er en Access (JET conn).
Avatar billede eagleeye Praktikant
26. marts 2004 - 16:29 #1
Og der står ikke "true" i den post som du har i kolonnen demoTlf
Avatar billede macriis Nybegynder
26. marts 2004 - 16:33 #2
nej, feltet er tomt.

Jeg har netop erfaret at hvis jeg skriver alt andet end '%true%' fx '%hej%' eller '% %' så returneres netop den ene post der indeholder teksten true. Det må jo betyde at alle poster som ikke indeholder noget som helst ikke reagerer på NOT LIKE '%et-eller-andet%'
Er det fordi jeg ikke kender til at oprette en database korrekt og at der måske skulle have været et Null i alle andre felter? Hmm.. eller skulle kolonnen have en anden datatype?
Avatar billede macriis Nybegynder
26. marts 2004 - 16:35 #3
Rettelse: "Jeg ved at der kun er én post i kolonnen demoTlf" = Der er masser af andre poster i db, men kun én der indeholder strengen true.
Avatar billede eagleeye Praktikant
26. marts 2004 - 16:37 #4
Hvis du vil havde den ud som indeholder true skal du ikke skrive NOT foran LIKE.

men true er reserveret ord til et Ja/Nej felt, måske det driller selvom man ikke har ' omkring i forbildelse med Ja/Nej felt, så det skulle umiddelbart ikke drille.
Avatar billede macriis Nybegynder
26. marts 2004 - 16:41 #5
Nej jeg ønsker at få alle poster ud der indeholder strengen 'demo' i kolonnen noter men ikke de poster der indeholder strengen 'true' i kolonnen demoTlf. (Så derfor skriver jeg også NOT LIKE ved strengen 'true').

Jeg har så prøvet at teste NOT LIKE i egen sætning:
strSQL = "SELECT kundenavn, noter FROM kunde WHERE demoTlf NOT LIKE '%true%'"

Det returnerer ingen ting! Selvom der er næsten 1000 poster der burde opbylde dette krav og kun 1 post der ikke opfylder det.
Avatar billede macriis Nybegynder
26. marts 2004 - 16:43 #6
Hvis jeg så skriver:

strSQL = "SELECT kundenavn, noter FROM kunde WHERE demoTlf NOT LIKE '%hej%'"

så returneres netop den post som indeholder strengen true. Så problemet må ligge i at de poster der intet indeholder ikke reagerer på NOT LIKE '%et-eller-andet%'.
Damn. Hvorfor?
Avatar billede eagleeye Praktikant
26. marts 2004 - 16:45 #7
Prøv ar skvie det sådan her:

strSQL = "SELECT kundenavn, noter FROM kunde WHERE demoTlf NOT LIKE '%[true]%'"
Avatar billede macriis Nybegynder
26. marts 2004 - 19:15 #8
Virker desværre ikke.
Avatar billede macriis Nybegynder
14. april 2004 - 19:03 #9
Hej eagleeye

Har du evt. fundet ud af hvordan man søger på et tomt felt i Access? Problemet er opstået igen i en anden SQL-sætning.


Eksempel:

   
    strSQL =     " SELECT * FROM kunde INNER JOIN bruger ON kunde.brugerId = bruger.brugerId "&_
                " WHERE postnr = '""' AND kunde.brugerId = " & Session("brugerId") & " "&_
                " ORDER BY kunde.postnr, kunde.kundenavn ASC"
Avatar billede macriis Nybegynder
14. april 2004 - 19:04 #10
Det er iøvrigt her jeg mener postnr = '""'

Jeg har prøvet med alle mulige syntaks, men det virker ikke.
Avatar billede eagleeye Praktikant
14. april 2004 - 19:33 #11
Hvis det er tomt skal du bruge is null:  postnr is null
Avatar billede macriis Nybegynder
14. april 2004 - 19:42 #12
Hvilket vel også kræver at jeg har sat mine felter til at være null ved oprettelse af db. Korrekt?
Avatar billede eagleeye Praktikant
14. april 2004 - 19:49 #13
Ja hvis de kan være tomme har du sikkert sat "tilladnullængde" til Ja i properties for kolonnen. Men når den er tom er den lig med null.
Avatar billede macriis Nybegynder
22. juni 2004 - 00:09 #14
Hej eagleeye.
Smid lige et svar, så får du point. Beklager ventetiden.
Avatar billede eagleeye Praktikant
30. juni 2004 - 23:06 #15
Ok :)
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