Tim Bunce wrote:
> 
> The DBI docs say:
> 
>     However, care must be taken in the particular case of trying to use
>     null values to qualify a C<SELECT> statement. Consider:
> 
>       SELECT description FROM products WHERE product_code = ?
> 
>     Binding an C<undef> (NULL) to the placeholder will I<not> select rows
>     which have a NULL C<product_code>! Refer to the SQL manual for your database
>     engine or any SQL book for the reasons for this.  To explicitly select
>     NULLs you have to say "C<WHERE product_code IS NULL>" and to make that
>     general you have to say:
> 
>       ... WHERE (product_code = ? OR (? IS NULL AND product_code IS NULL))
> 
>     and bind the same value to both placeholders.

And just to be complete, Sybase (and possibly MS) has an "ansinull" option
that can be set. If it is not set then the "x = null" *will* work correctly.

Michael

Reply via email to