MySQL 中数值比较的Bug?

jiakai0419 2011-12-08 04:15:49
mysql> select * from topic;
+----+---------------------+-------+-------------+
| id | creatDate | title | category_id |
+----+---------------------+-------+-------------+
| 1 | 2011-12-08 11:03:32 | t0 | 1 |
| 2 | 2011-12-08 11:03:32 | t1 | 1 |
| 3 | 2011-12-08 11:03:32 | t2 | 1 |
| 4 | 2011-12-08 11:03:32 | t3 | 1 |
| 5 | 2011-12-08 11:03:32 | t4 | 1 |
| 6 | 2011-12-08 11:03:32 | t5 | 1 |
| 7 | 2011-12-08 11:03:32 | t6 | 1 |
| 8 | 2011-12-08 11:03:32 | t7 | 1 |
| 9 | 2011-12-08 11:03:32 | t8 | 1 |
| 10 | 2011-12-08 11:03:32 | t9 | 1 |
+----+---------------------+-------+-------------+

mysql> select * from topic where id >= 5.5;
+----+---------------------+-------+-------------+
| id | creatDate | title | category_id |
+----+---------------------+-------+-------------+
| 7 | 2011-12-08 11:03:32 | t6 | 1 |
| 8 | 2011-12-08 11:03:32 | t7 | 1 |
| 9 | 2011-12-08 11:03:32 | t8 | 1 |
| 10 | 2011-12-08 11:03:32 | t9 | 1 |
+----+---------------------+-------+-------------+

为什么没有id为6的记录?

在Oracle中就没有这样的问题问题。

如果有这样的BUG的话.

select * from topic where id >= (select avg(id) from topic);
就肯定不行。相当于不能用avg()函数了。


有人遇见过吗?

...全文
186 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
杀猪剑客 2011-12-09
  • 打赏
  • 举报
回复
人品问题!
jiakai0419 2011-12-09
  • 打赏
  • 举报
回复
难到说是版本问题?
oO临时工Oo 2011-12-09
  • 打赏
  • 举报
回复
version: 5.0.67

没这个问题
不管主键还是非主键。都对

zoeg 2011-12-09
  • 打赏
  • 举报
回复
估计是因为类型转换过程造成的,像你说的情况,类型压缩的时候是用的四舍五入,而你实际想要的是去尾取整,那你就干脆自己手动加上去尾取整么好了!MySql不知道是哪个函数,试试round()
sun0322 2011-12-08
  • 打赏
  • 举报
回复
你用sql语句,比较一下6.0 和 6 看看是否相等

jiakai0419 2011-12-08
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 yjl49 的回复:]

引用 10 楼 jiakai0419 的回复:

引用 9 楼 yjl49 的回复:

6.04的。

MySQL Community Server
(Current Generally Available Release: 5.5.19)
官方才出到5.5.19吧?哥们

Sever version : 6.0.4-alpha-community-log MySQL Co……
[/Quote]


哥们。官网也没有。你那个是正式版的吗?

给我小小的介绍一下呗。
jiakai0419 2011-12-08
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 lxwankkk 的回复:]

莫非6.0以前采取的是4不舍,5不入的设计原则?整形
[/Quote]


我管你4舍5入呢?

id>=5.5

无论你5.5是入还是舍 都应该有6啊。
yjl49 2011-12-08
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 jiakai0419 的回复:]

引用 9 楼 yjl49 的回复:

6.04的。

MySQL Community Server
(Current Generally Available Release: 5.5.19)
官方才出到5.5.19吧?哥们
[/Quote]
Sever version : 6.0.4-alpha-community-log MySQL Community Server (GPL)
  • 打赏
  • 举报
回复
莫非6.0以前采取的是4不舍,5不入的设计原则?整形
jiakai0419 2011-12-08
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yjl49 的回复:]

6.04的。
[/Quote]
MySQL Community Server
(Current Generally Available Release: 5.5.19)
官方才出到5.5.19吧?哥们
yjl49 2011-12-08
  • 打赏
  • 举报
回复
6.04的。
jiakai0419 2011-12-08
  • 打赏
  • 举报
回复
我的MySQL是5.5.16的。
我同学的是5.5.18的。

都出现了这个问题。
jiakai0419 2011-12-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yjl49 的回复:]

我这边的primary key 就没出现这问题。我用的MySQL
[/Quote]
那为什么我的MySQL 就有问题呢?

id >= 5.1 id >=5.4什么的都没问题
id >= 5.5 id >= 5.6就有问题了。

你试的跟我一样吗?
yjl49 2011-12-08
  • 打赏
  • 举报
回复
我这边的primary key 就没出现这问题。我用的MySQL
jiakai0419 2011-12-08
  • 打赏
  • 举报
回复
我刚才实验过了。

如果比较的字段是primary key才会有这种BUG.
jiakai0419 2011-12-08
  • 打赏
  • 举报
回复

mysql> desc topic;
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| creatDate | datetime | YES | | NULL | |
| title | varchar(255) | YES | | NULL | |
| category_id | int(11) | YES | MUL | NULL | |
+-------------+--------------+------+-----+---------+----------------+
NIan_jun 2011-12-08
  • 打赏
  • 举报
回复
mysql> select * from dept;
+--------+--------+------+
| deptno | dname | loc |
+--------+--------+------+
| 1 | 销售部 | 北京 |
| 2 | 开发部 | 上海 |
| 3 | 人事部 | 杭州 |
| 4 | 行政部 | 郑州 |
| 5 | 销售部 | 上海 |
+--------+--------+------+
5 rows in set (0.00 sec)

mysql> select * from dept where deptno >=3.5;
+--------+--------+------+
| deptno | dname | loc |
+--------+--------+------+
| 4 | 行政部 | 郑州 |
| 5 | 销售部 | 上海 |
+--------+--------+------+
2 rows in set (0.00 sec)

测试正常啊

你的ID什么类型 char ?
jiakai0419 2011-12-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 jiakai0419 的回复:]
mysql> select * from topic;
+----+---------------------+-------+-------------+
| id | creatDate | title | category_id |
+----+---------------------+-------+-------------+
| 1 | 2011-12-……
[/Quote]

怎么转?
开始领悟 2011-12-08
  • 打赏
  • 举报
回复
如果是类型问题的话转成相同类型进行比较不就行了

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧