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/