应对所有表标签数据重复此查询:
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的用户。
答案 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