为什么此查询只有一个结果?

时间:2015-04-26 14:34:51

标签: mysql

应对所有表标签数据重复此查询:

SELECT tags.*, COUNT(users.tags) AS followers 
FROM tags 
INNER JOIN users ON users.tags LIKE CONCAT("%,",tags.id,",%") 
WHERE 1 
ORDER BY followers DESC

当我运行此命令时,它只显示一个结果,尽管事实上有超过20行。即使我在查询中有WHERE 1,也是如此。

我看到如果我将COUNT(users.tags)替换为users.tags,则会显示多个结果,但不包括计数。

我只是尝试从标记中获取数据,并计算其标记列中具有标记ID的用户。

1 个答案:

答案 0 :(得分:1)

COUNT()aggregate function。因此,除非您有GROUP BY子句,否则它会自动对所有行进行分组。尝试这样的事情:

SELECT tags.*, COUNT(users.tags) AS followers
FROM tags
    INNER JOIN users ON users.tags LIKE CONCAT("%,",tags.id,",%")
WHERE 1
GROUP BY tags.id -- NOTE: you may need to specify a different field here; not sure what you want
ORDER BY followers DESC