Mysql:获取大多数匹配列的行

时间:2013-12-01 18:48:00

标签: mysql select

我有一个这样的用户表:

Id --- Privilege1 --- Privilege2 --- Privilege3 --- Privilege4 --- Privilege-5
 1          1              0             0               1             0
 4          0              1             0               0             0
12          1              1             1               1             0

ID包含用户ID,Privilege1 - Privilege5包含值0(否)或1(是)。

我需要获取大多数权限为1的行的ID。在我的示例中它应该是12,因为该行具有最多1's。我怎么能这样做?

1 个答案:

答案 0 :(得分:-1)

SELECT `id`, (`Privilege1` + `Privilege2` + `Privilege3` + `Privilege4` + `Privilege5`) AS `priv`
FROM `table`
HAVING `priv` = MAX(`Privilege1` + `Privilege2` + `Privilege3` + `Privilege4` + `Privilege5`)