SqlCommand sqlcmd = new SqlCommand("SELECT Username, TimesUsed FROM UserInfo " +
"WHERE (Category IN ( " + query + ")) " + "ORDER BY TimesUsed DESC", conn);
其中 query = 'css','php','html' 例如
我想以这样的方式对它们进行排序,即在查询中拥有最多标签的用户被放置在顶部。
目前,它们是根据使用集合中特定标签的次数进行排序的。
有什么想法吗?预先感谢:)
最佳答案
所以,如果我理解的话,您需要使用的所有标签的总数,而 TimesUsed
与特定标签相关。如果这是正确的,那么您可以 SUM(TimesUsed)
和 GROUP BY Username
SqlCommand sqlcmd = new SqlCommand("SELECT Username, SUM(TimesUsed) AS TotalUsed FROM UserInfo " +
"WHERE (Category IN ( " + query + ")) " + "GROUP BY Username ORDER BY SUM(TimesUsed) DESC", conn);
sqlcmd.Parameters.AddWithValue("@c", query);
您的完整 SQL:
SELECT
Username,
SUM(TimesUsed) AS TotalUsed
FROM UserInfo
WHERE Category IN ('php','css','sql','etc')
GROUP BY Username
ORDER BY SUM(TimesUsed) DESC
关于mysql - 按集合中最多标签排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5898194/