gpt4 book ai didi

php - 为什么我的 mysql DISTINCT 不起作用?

转载 作者:可可西里 更新时间:2023-11-01 07:46:00 25 4
gpt4 key购买 nike

为什么下面的两个查询返回重复的 member_id 而不是第三个?

我需要第二个查询来处理 distinct。每当我运行 GROUP BY 时,这个查询都非常慢并且结果集不会返回与 distinct 相同的值(值是错误的)。

SELECT member_id, id 
FROM ( SELECT * FROM table1 ORDER BY created_at desc ) as u
LIMIT 5

+-----------+--------+
| member_id | id |
+-----------+--------+
| 11333 | 313095 |
| 141831 | 313094 |
| 141831 | 313093 |
| 12013 | 313092 |
| 60821 | 313091 |
+-----------+--------+

SELECT distinct member_id, id 
FROM ( SELECT * FROM table1 ORDER BY created_at desc ) as u
LIMIT 5

+-----------+--------+
| member_id | id |
+-----------+--------+
| 11333 | 313095 |
| 141831 | 313094 |
| 141831 | 313093 |
| 12013 | 313092 |
| 60821 | 313091 |
+-----------+--------+

  SELECT distinct member_id
FROM ( SELECT * FROM table1 ORDER BY created_at desc ) as u
LIMIT 5

+-----------+
| member_id |
+-----------+
| 11333 |
| 141831 |
| 12013 |
| 60821 |
| 64980 |
+-----------+

我的表格示例

CREATE TABLE `table1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`member_id` int(11) NOT NULL,
`s_type_id` int(11) NOT NULL,
`created_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `s_FI_1` (`member_id`),
KEY `s_FI_2` (`s_type_id`)
) ENGINE=InnoDB AUTO_INCREMENT=313096 DEFAULT CHARSET=utf8;

最佳答案

DISTINCT 是一个关键字,您只能将其应用于整个 SELECT,而不能应用于单个字段。它确保数据库不会返回两个相同的行。这就是为什么您使用 DISTINCT 的第二个查询每个 member_id 只返回一次,而您的第一个查询返回两次。在它的结果集中,每一行确实是唯一的,即使你可以获得多次相同的 member_id

关于php - 为什么我的 mysql DISTINCT 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2534379/

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