Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql:获取最匹配列的行_Mysql_Select - Fatal编程技术网

Mysql:获取最匹配列的行

Mysql:获取最匹配列的行,mysql,select,Mysql,Select,我有这样一个用户表: Id --- Privilege1 --- Privilege2 --- Privilege3 --- Privilege4 --- Privilege-5 1 1 0 0 1 0 4 0 1 0 0 0 12 1

我有这样一个用户表:

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 no或1 yes


我需要获取大多数特权为1的行的ID。在我的示例中,它应该是12,因为该行最多有1个。我该怎么做?

数据库设计太糟糕了。下次,为privilege_id创建一列作为外键,为privilege levels创建另一个表。
SELECT `id`, (`Privilege1` + `Privilege2` + `Privilege3` + `Privilege4` + `Privilege5`) AS `priv`
FROM `table`
HAVING `priv` = MAX(`Privilege1` + `Privilege2` + `Privilege3` + `Privilege4` + `Privilege5`)