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/

10-10 04:47