MySQL-将查询更改为仅在一列上是不同的
我有下面的查询,但我希望它的行为有所不同。现在,它查找url上的所有重复行,并按重复url的数量顺序返回。我使用GROUP_uu_uconcat来分隔所有不同的屏幕名称 但是,可以有多行具有相同的url和相同的屏幕名称。如何使其仅检索屏幕名称不同的行MySQL-将查询更改为仅在一列上是不同的,mysql,Mysql,我有下面的查询,但我希望它的行为有所不同。现在,它查找url上的所有重复行,并按重复url的数量顺序返回。我使用GROUP_uu_uconcat来分隔所有不同的屏幕名称 但是,可以有多行具有相同的url和相同的屏幕名称。如何使其仅检索屏幕名称不同的行 SELECT url, title, GROUP_CONCAT( screen_name ) , COUNT( t_uid ) FROM `twl_links` WHERE twl_uid =3
SELECT url, title, GROUP_CONCAT( screen_name ) , COUNT( t_uid )
FROM `twl_links`
WHERE twl_uid =3
AND timestamp >= NOW( ) - INTERVAL 24 HOUR
GROUP BY (
url
)
ORDER BY COUNT( t_uid ) DESC
你试过使用distinct关键字吗 编辑: 下面是另一篇文章,展示了distinct可以与group_concat一起使用的位置:
你试过使用distinct关键字吗 编辑: 下面是另一篇文章,展示了distinct可以与group_concat一起使用的位置:
你到底想要什么还不清楚。鉴于这些数据:
t_uid url title screen_name
1 http://google.com/ Google bob
2 http://google.com/ Google Search bob
3 http://google.com/ Google tom
你期望得到什么样的结果?如果您想要:
http://www.google.com '???' 'bob,tom' 2
然后,您可以执行SELECT DISTINCT子查询来删除重复项
你把它放在twl_链接的地方
如果你愿意
http://www.google.com '???' 'bob,tom' 3
然后,您可以使用组CONCATDISTINCT screen\u name来获得该名称
请注意,在所有情况下,返回的标题都是不明确的,除非URL和标题之间存在N:1映射;除非每个URL只有一个不同的标题
仅供参考,由于缺乏规范化,您似乎有一个冗余且难以查询的数据。您不清楚到底想要什么。鉴于这些数据:
t_uid url title screen_name
1 http://google.com/ Google bob
2 http://google.com/ Google Search bob
3 http://google.com/ Google tom
你期望得到什么样的结果?如果您想要:
http://www.google.com '???' 'bob,tom' 2
然后,您可以执行SELECT DISTINCT子查询来删除重复项
你把它放在twl_链接的地方
如果你愿意
http://www.google.com '???' 'bob,tom' 3
然后,您可以使用组CONCATDISTINCT screen\u name来获得该名称
请注意,在所有情况下,返回的标题都是不明确的,除非URL和标题之间存在N:1映射;除非每个URL只有一个不同的标题
仅供参考,由于缺乏规范化,您似乎有一个冗余且难以查询的数据。您可以使用如下子查询来限制它:
SELECT t1.url, GROUP_CONCAT( t1.screen_name ) , COUNT( * )
FROM (
SELECT DISTINCT url, screen_name
FROM mytable
) AS t1
GROUP BY t1.url
它没有给你标题,但是因为标题不在GroupBy中,所以我不太清楚该字段会返回什么。如果您想要这些URL的所有标题,您可以将上述查询与您的表连接起来。您可以使用如下子查询来限制它:
SELECT t1.url, GROUP_CONCAT( t1.screen_name ) , COUNT( * )
FROM (
SELECT DISTINCT url, screen_name
FROM mytable
) AS t1
GROUP BY t1.url
它没有给你标题,但是因为标题不在GroupBy中,所以我不太清楚该字段会返回什么。如果您想要这些URL的所有标题,您可以将上面的查询与您的表连接起来。我有,但这没有什么区别,因为我正在获取URL,并使用GROUP_CONCAT作为屏幕名称。我修改了我的答案,以显示另一篇结合了这两种查询的文章。我想这会给你你想要的。我有,但这没有什么区别,因为我得到的网址和使用组_CONCAT的屏幕名称我修改了我的答案,显示另一篇文章,结合了这两个。我想这会给你想要的。非常感谢。我同意标准化通常是更好的选择,但是这是一个数据只存储24小时然后删除的表。因此,我选择不把URL和标题放在一个单独的表中。非常感谢。我同意标准化通常是更好的选择,但是这是一个数据只存储24小时然后删除的表。因此,我选择不将URL和标题放在单独的表中。