MYSQL统计每行的唯一值
我有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 |
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查询?这个答案有用吗?