云数据库 RDS MySQL 版的decimal字段过大导致查询不准确

问题描述

云数据库 RDS MySQL 版的decimal字段过大,导致查询不准确。

问题原因

云数据库 RDS MySQL 版的decimal字段过大查询不准的情况,这是MySQL数据库的BUG引起。

解决方法

可以通过添加索引进行优化解决,优化SQL语句如下。

create table mlgtestdecimal(`campaign_id` decimal(24, 0) NOT NULL, name VARCHAR(50));

insert into mlgtestdecimal(campaign_id, name)
VALUES('XXXXXXX','XXXXXX');

insert into mlgtestdecimal(campaign_id, name)
VALUES('XXXXXXX','XXXXXX');

SELECT *
from mlgtestdecimal
where campaign_id='XXXXXXX'
  and name='XXXXXX'
  alter table mlgtestdecimal add index ind_decimal (`campaign_id`);

适用于

  • 云数据库RDS MySQL版