[MySQL] Select met IS NOT NULL geeft error

Pagina: 1
Acties:

  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 06-05 09:01

Kaastosti

Vrolijkheid alom!

Topicstarter
Zoals de titel zegt probeer ik een lijstje met waarden uit de database te trekken, waarvan een bepaald veld leeg moet zijn, ofwel NULL. In de database (bekeken met phpMyAdmin) staat ook netjes in de bedoelde velden de NULL waarde.

Ik heb dit grapje met een aantal queries geprobeerd, waar ik bij iedere poging een mysql_error() terugkreeg die mij wees op de constructie waar 'NULL' in voorkomt. De volgende queries zijn zwaar vereenvoudigd om makkelijker te kunnen testen, maar deze constructies heb ik nu geprobeerd:
code:
1
2
3
4
5
6
7
8
SELECT name FROM groups WHERE ip <> 'NULL'
SELECT name FROM groups WHERE ip <> NULL
SELECT name FROM groups WHERE ip IS NOT NULL
SELECT name FROM groups WHERE ip IS NOT 'NULL'
SELECT name FROM groups WHERE ip NOT 'NULL'
SELECT name FROM groups WHERE ip NOT NULL
SELECT name FROM groups WHERE ip IS NOT ''
SELECT name FROM groups WHERE ip NOT ''

Natuurlijk heb ik gegoogled, gesearched en op mysql.org rondgekeken. Daar kom ik echter standaard het antwoord tegen dat 'IS NOT NULL' gewoon zou moeten werken. Niets is minder waar, ik krijg alleen maar errors.

De MySQL server is versie 4.0.24 en draait op een Debian systeem. Zit daar die NULL waarde nog niet helemaal goed geintegreerd of iets in die richting?

[ Voor 12% gewijzigd door Kaastosti op 19-05-2005 13:12 ]

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 06-05 18:51

Creepy

Tactical Espionage Splatterer

En WELKE error krijg je nu dan?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • DaCoTa
  • Registratie: April 2002
  • Laatst online: 18:32
De enige juist is volgens mij:
code:
1
SELECT name FROM groups AS gc WHERE ip IS NOT NULL;

Dus zonder , achter gc. Hoewel ik de AS als alias voor tabelnaam niet ken. In oracle gaat dat iig fout, daar werkt alleen
code:
1
SELECT name FROM groups WHERE ip IS NOT NULL;

[ Voor 41% gewijzigd door DaCoTa op 19-05-2005 13:11 ]


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

of:
code:
1
select gc.name from groups as gc where gc.ip is not null

Als MySQL strict is in het gebruik van aliassen.

Who is John Galt?


  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 06-05 09:01

Kaastosti

Vrolijkheid alom!

Topicstarter
Heh sorry, c/p typo die komma ;)

Ook zonder de 'AS gc' werkt het natuurlijk niet, dat maakt verder geen verschil. Ik dacht ook aan de de 'IS NOT NULL' constructie, die moet het volgens mij gewoon doen. Als ik die echter uitvoer krijg ik:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE ip IS NOT NULL' at line 3

[ Voor 6% gewijzigd door Kaastosti op 19-05-2005 13:15 ]

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • Vozze
  • Registratie: December 2001
  • Laatst online: 03-05 14:48
code:
1
SELECT name FROM groups WHERE ip > ""

"He who thinks knows evertyhing, knows nothing" - Socrates


  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 06-05 09:01

Kaastosti

Vrolijkheid alom!

Topicstarter
Nope ook niet, zelfde foutmelding alleen nu met 'WHERE ip > ""' :)

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Aangezien een stringvergelijking ook niet werkt, vermoed ik dat het toch ergens anders zit. Mijn eerste gok zou een keyword probleem zijn. Probeer alle kolomnamen eens te backticken ( ` )

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Moet het niet gewoon NOT ip IS Null zijn? Nevermind, ben nog wat slaperig :+

[ Voor 34% gewijzigd door bigbeng op 19-05-2005 13:41 ]


  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 06-05 09:01

Kaastosti

Vrolijkheid alom!

Topicstarter
Probeer alle kolomnamen eens te backticken ( ` )
Heeft er niets mee te maken, ik heb nog tientallen queries goed draaien, maar okee ik ben bereid alles te proberen :) Helaas nog steeds de foutmelding.
Moet het niet gewoon NOT ip IS Null zijn?
Een rare constructie, maar het proberen waard. Nope :P

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Werkt IS NULL wel, dus zonder de NOT? Ik weet dat je dan niet de goede resultaten krijgt, maar dat is volgens een voorbeeld uit de docs correcte syntax.

(Tuurlijk snap ik dat IS NOT dan ook zou moeten werken, maar ik gok ook maar wat :P)

Oops! Google Chrome could not find www.rijks%20museum.nl


  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 06-05 09:01

Kaastosti

Vrolijkheid alom!

Topicstarter
Die werkt ook al niet... dat is nu juist hetgeen waar ik niet bij kan. Het is correcte syntax, zit niets ingewikkelds in en toch werkt het niet :|

Correctie: Als ik de query c/p naar phpMyAdmin komen er uit deze query gewoon wel results:
"SELECT * FROM groups WHERE ip IS NULL"

[ Voor 35% gewijzigd door Kaastosti op 19-05-2005 13:50 ]

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Kun je even je tabel definitie hier posten dan? Dan kan ik zelf even stoeien hier Niet meer nodig dus

[ Voor 15% gewijzigd door Glimi op 19-05-2005 13:51 ]


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Is 'name' dan niet gewoon een reserved word?

Who is John Galt?


  • Vozze
  • Registratie: December 2001
  • Laatst online: 03-05 14:48
justmental schreef op donderdag 19 mei 2005 @ 13:52:
Is 'name' dan niet gewoon een reserved word?
Nee, maar ik vermoed dat het met groups te maken heeft. Doe eens:

code:
1
select name from groups

"He who thinks knows evertyhing, knows nothing" - Socrates


  • Coltrui
  • Registratie: Maart 2001
  • Niet online

Coltrui

iddqd

Misschien domme vraag, maar is ';' niet verplicht in MySQL om een statement te beëindigen?

En die voorbeelden in de FP, heb je die zo al eens letterlijk ingeklopt?

  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 06-05 09:01

Kaastosti

Vrolijkheid alom!

Topicstarter
En zoals het een goede MySQL server betaamd werkt het geheel, nadat ik het opnieuw het ingetikt ineens wel. Een vergelijking tussen de twee levert op dat ze exact gelijk zijn, maar dat de een het wel, en de ander het niet doet.

De 'IS NOT NULL' constructie werkt dus gewoon naar behoren zoals verwacht werd. Bedankt voor de suggesties!

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Een vergelijking tussen de twee levert op dat ze exact gelijk zijn, maar dat de een het wel, en de ander het niet doet.
Somehow, i find that hard to believe. MySQL is een rare snuiter, maar zo raar nou ook weer niet.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 06-05 09:01

Kaastosti

Vrolijkheid alom!

Topicstarter
Kennelijk zat er ergens een onzichtbare syntax verstopt. Het is een query die vanuit PHP gedraait moet worden. Als editor gebruik ik UltraEdit en daar zit een overvloed aan functionaliteiten in... ergens een onzichtbaar karakter neerzetten waardoor de query op z'n bek gaat behoort dus ook best tot de mogelijkheden.

Waarom iemand zo'n karakter uberhaupt zou willen hebben is een andere vraag natuurlijk, maar in deze context kan het best dat dat het probleem was :)

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.

Pagina: 1