Hello.




If the space is so important to you, what do you think about 'LIKE' operator?

It seems to work corectly and it is able to use indexes. See:



create table fff (x float,  key(x));    

insert into fff values(0.1); 

insert into fff values(0.11);

............................



select * from fff where x like 0.1;

         +------+

         | x    |

         +------+

         |  0.1 |

         |  0.1 |

         |  0.1 |

         +------+





mysql> explain select * from fff where x like 0.1 \G;

*************************** 1. row ***************************

id: 1

select_type: SIMPLE

table: fff

type: index

possible_keys: x

key: x

key_len: 5

ref: NULL

rows: 16

Extra: Using where; Using index;









Jacek Becla <[EMAIL PROTECTED]> wrote:

> Hi,

> 

> I'm having problems with floats while doing comparisons.

> 

> create table fff (x float);

> create table ddd (x double);

> insert into fff (0.1);

> insert into ddd (0.1);

> 

> "select * from ddd where x = 0.1" correctly returns one row, but

> "select * from fff where x = 0.1" does not return anything.

> 

> I found on many websites that "If you are comparing FLOAT or

> DOUBLE columns with numbers that have decimals, you can't use '='.

> This problem is common in most computer languages because

> floating-point values are not exact values. In most cases,

> changing the FLOAT to a DOUBLE will fix this."

> 

> This solution is fine as long as involved data size is relatively small. 

> We are planning to store ~500 millions rows per day, each containing 

> many floats. Switching to double is not a viable option due to space 

> overhead. I wonder if anyone has a better suggestion how to solve it.

> 

> Thanks,

> Jacek

> 



-- 
For technical support contracts, goto https://order.mysql.com/?ref=ensita
This email is sponsored by Ensita.NET http://www.ensita.net/
   __  ___     ___ ____  __
  /  |/  /_ __/ __/ __ \/ /    Gleb Paharenko
 / /|_/ / // /\ \/ /_/ / /__   [EMAIL PROTECTED]
/_/  /_/\_, /___/\___\_\___/   MySQL AB / Ensita.NET
       <___/   www.mysql.com




-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to