gpt4 book ai didi

mysql - 组使用日期函数时 mysql 的奇怪行为

转载 作者:行者123 更新时间:2023-11-30 23:14:49 25 4
gpt4 key购买 nike

Mysql 在使用 COUNT(DISTINCT...) 和 GROUP BY DATE(...) 时似乎返回了错误的结果。我按“record_date”列分组,我希望在结果集中看到不同的值,但事实并非如此。此外,由于某种原因我无法订购结果。

我不知道是什么导致了 MySQL 的这种行为。

我的 table :

CREATE TABLE `test_table` (
`test_id` int(10) unsigned NOT NULL auto_increment,
`rid` varchar(50) default NULL,
`rid_test_id_ppl` int(10) unsigned NOT NULL,
`record_time` datetime default NULL,
PRIMARY KEY (`test_id`),
UNIQUE KEY `uid` (`rid`),
KEY `rid_test_id_ppl` (`rid_test_id_ppl`),
KEY `record_time` (`record_time`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1

我的查询:

  SELECT DATE(`record_time`) AS record_date
, COUNT( DISTINCT rid_test_id_ppl ) AS dubl
FROM test_table
GROUP BY record_date
ORDER BY record_date ASC

我的结果:

+------------+-------+
| record_date| dubl |
+------------+-------+
| NULL | 58569 |
| 2013-08-21 | 6052 |
| 2013-08-22 | 19180 |
| 2013-08-23 | 1 |
| 2013-08-22 | 7632 |
| 2013-08-23 | 1 |
| 2013-08-22 | 1300 |
| 2013-08-23 | 16458 |
| NULL | 54996 |
| 2013-08-22 | 1 |
| NULL | 1750 |
| 2013-08-21 | 2221 |
+------------+-------+
12 rows in set (0.36 sec)

我的结果,当我只删除“DISTINCT”关键字时:

+------------+--------+
| record_date| dubl |
+------------+--------+
| NULL | 121134 |
| 2013-08-21 | 8275 |
| 2013-08-22 | 28130 |
| 2013-08-23 | 16694 |
+------------+--------+
4 rows in set (0.30 sec)

编辑:我的 MySQL 版本是 5.0.45。编辑:两种情况下的结果集都是复制粘贴的。更奇怪的是,我在第一个查询中没有得到结果的排序。

最佳答案

正如@a_horse_with_no_name 所建议的那样,我在 MySQL 5.5.24 版中导入了包含数据的表,一切都按预期进行。现在我在结果集中看到不同的日期并且排序工作正常。

关于mysql - 组使用日期函数时 mysql 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18402112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com