MYSQL统计每行的唯一值

MYSQL统计每行的唯一值,mysql,Mysql,我有mysql数据库结构和值: name | x | y | z ------------------ name1 | 1 | 1 | 2 name2 | 2 | 1 | 3 name3 | 1 | 1 | 1 现在我需要为每一行添加额外的列和计数器唯一值(x,y,z): name | x | y | z | unique -------------------------- name1 | 1 | 1 | 2 | 2 name2 | 2 | 1 | 3 | 3 name3 | 1 |

我有mysql数据库结构和值:

name  | x | y | z
------------------
name1 | 1 | 1 | 2
name2 | 2 | 1 | 3 
name3 | 1 | 1 | 1
现在我需要为每一行添加额外的列和计数器唯一值(x,y,z):

name  | x | y | z | unique
--------------------------
name1 | 1 | 1 | 2 | 2
name2 | 2 | 1 | 3 | 3
name3 | 1 | 1 | 1 | 1

我该怎么做呢?

您可以使用select count distinct

SELECT *,COUNT (DISTINCT column-name)  FROM table-name;

这里有更多答案>,已经有答案了。

如果不需要大规模扩展,可以这样做

SELECT *, 
(CASE 
 WHEN x=y=z THEN 1
 WHEN x=y OR x=z OR y=z THEN 2
 ELSE 3
END) as `unique`
FROM `table`

不幸的是,我有更多的列和数百万行。还有其他想法吗?@kuguary您是将其与php结合使用,还是直接使用sql查询?这个答案有用吗?