一致する基準の次のようにしてテーブルのすべての重複値を取得するとします: - (first_name、last_name、father_name) 2-(nationalId)でマッチしました。 3-(phone_number)でマッチしました。Mysql複数の列でグループ化し、どのグループに一致するかに基づいてフラグ値を選択する方法
上記の条件を使用して自己が複数登録されているすべてのユーザーを取得したいとします。 今、私はそれらのいずれかを持っているmatched_type
、2
、3
値が一致したものに基づいてこれらのいずれかを持つ列を選択する必要がある他の列に沿って、これらの重複レコードを取得したい。 これで、一致する条件ごとに個別のクエリが作成されました。これは1つのクエリで実行できますか?
私はこれらのクエリがあります。
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
、最後の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