Hi,

The two selects in this script:

        drop table if exists foo;
        create table foo (id int not null);
        insert into foo (id) values (0), (1);

        drop table if exists joiner;
        create table joiner (joinerid int not null);
        insert into joiner (joinerid) values (0), (1);

        # This select produces the expected results.
        select  if(id > 10, 0  , 1.23) as zero,
                        if(id > 10, 0.0, 1.23) as zeropointzero
        from    foo
        order by 1;

        # This select does not.
        select  if(id > 10, 0  , 1.23) as zero,
                        if(id > 10, 0.0, 1.23) as zeropointzero
        from    foo, joiner
        where   id = joinerid
        order by 1;

should produce identical results.  Instead what we get is

        zero   zeropointzero
        1.23   1.23
        1.23   1.23

        zero   zeropointzero
        1          1.2
        1          1.2

The only difference between the two queries is that the second one
joins with the table 'joiner', while the first one joins with no
table.  The join doesn't change the row set, and the joined field
isn't otherwise used.

The selects should produce the same values; if it can be fixed either
way, I prefer the behavior of the first select (non-truncation).

Thanks for looking at this, and for MySQL generally!

--
Pete Harlan
[EMAIL PROTECTED]

---------------------------------------------------------------------
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