Hey folks. I was getting some odd and unexpected results via a web query the
other day, and I finally traced the problem down -- but it lead me to wonder
if the problem was expected or a bug. Here's the deal:

When I initially created the MySQL table, I forgot to specify that I wanted
to allow NULL in certain fields. I populated the table, realized my mistake
and then changed the field to allow NULLs. Here's where things got weird:
When I ran a "select..where <field> is not NULL" against one of the fields,
in which there had never been data entered, I got back no results. That
happened even after I switched the field back to accept NULLs.

For kicks, I created a new table from scratch allowing nulls from the
get-go, and everything worked as expected. Fixing this particular problem
was no big deal; I just changed the select to "like """ and it worked fine.
But it led me to wonder whether this isn't a real issue. For example, if you
create the table to accept NULLs from the beginning, a count() will
correctly return an empty set. If you create the table, and then change the
field to accept NULLs a count() will return an incorrect result.

I didn't see anything in the docs about this (or did I miss it?). Wondering
if other folks have noticed this, and if this is just one of those traps we
have to watch out for. I sure could see how this could cause serious
problems with aggregate functions if you didn't know better.

Thanks!


----------------------------------------------------
: Aron Pilhofer
: Director, Campaign Finance Information Center
: Investigative Reporters and Editors
: National Institute for Computer-Assisted Reporting
~
: Phone: (202) 362-3223
: Email: [EMAIL PROTECTED]
:"SQL Forever"



---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to