---
title: float 类型字段查询结果异常-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 float 类型字段查询结果异常相关的常见问题和使用技巧，帮助您快速解决 float 类型字段查询结果异常的难题。
---
切换语言

- 简体中文
- English

划线反馈

# float 类型字段查询结果异常

更新时间：2024-07-12 06:26

适用版本： V4.2.x 内容类型：TechNote  

## 问题描述

在原生 MySQL 数据库与 OceanBase 数据库 MySQL 模式下创建 float 类型字段的表，并插入数据，执行 SQL 查询，float 类型字段查询结果异常。

- 原生 MySQL 数据库查询结果：

  ![image01](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/sql/20240709float001.png)
 - OceanBase 数据库 MySQL 模式下查询结果：

  ![image02](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/sql/20240709float002.png)

  原生 MySQL 数据库与 OceanBase 数据库 MySQL 模式下 float 类型字段的查询结果不一样，查询结果异常。

## 适用版本

OceanBase 数据库 V4.2.x 版本。

## 问题原因

float 字段为非精度字段，导致查询结果异常。

## 解决方法

float 精度问题导致的，在创建表的时候指定精度如 `float(10,4)`，则原生 MySQL 数据库与 OceanBase 数据库 MySQL 模式下的结果一样，相应的建表语句与测试 SQL 如下。

```shell
CREATE TABLE t1_1 (key1 float(10,4) default NULL, UNIQUE KEY key1 (key1));
INSERT INTO t1_1 VALUES (0.3762),(0.3845),(0.6158),(0.7941);
select max(key1) from t1_1 where key1 <= 0.6158;

```

Previous

[Oracle 模式使用浮点数数值数据类型](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000690997)

Next

[MySQL 租户与 Oracle 租户在非 INT 类型与 INT 类型比较时的差异](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000207700) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
