假设我想通过遵循匹配的条件获取表的所有重复值: 1-匹配(first_name,last_name,father_name)。 2匹配(nationalId)。 3匹配(phone_number)。Mysql如何按多列进行分组,并根据匹配哪个组来选择标志值
假设我想让所有使用上述条件注册的用户多于一个。 现在我想采取这些重复的记录,沿着其他列我需要选择一个列matched_type
应该有这些1
,2
,3
值之一基于发生匹配的值。 现在我对每个匹配标准都有单独的查询,是否可以用一个查询来完成?
我有这些疑问:
SELECT u.first_name,u.last_name,u.father_name,u.national_id,u.phone,COUNT(u.id) AS total,'1' AS match_type
FROM users
GROUP BY CONCAT(u.first_name,u.last_name,u.father_name)
HAVING total > 1
和第二匹配的标准:
SELECT u.first_name,u.last_name,u.father_name,u.national_id,u.phone,COUNT(u.id) AS total, '2' AS match_type
FROM users
GROUP BY u.national_id
HAVING total > 1
和最后一个:
SELECT u.first_name,u.last_name,u.father_name,u.national_id,u.phone,COUNT(u.id) AS total, '3' AS match_type
FROM users
GROUP BY u.phone
HAVING total > 1
后来才知道有这样的:
SELECT src.* FROM (first_query UNION ALL second_query UNION ALL third_query)
请包括您的查询和数据。就目前而言,这个问题对任何人都不会有帮助。 –
你可以添加表格结构吗? – MontyPython