次のクエリを使用して、同じ姓名を持つすべての重複レコードを返します。秘訣は、contact_idが降順である必要があるということです。
クエリは期待どおりに連絡先を返しますが、それはとても遅いです!約30,000レコードをチェックする場合、約6〜8秒かかります。
私はcontact_firstName、contact_lastName、contact_client_id、contact_idをすべてデータベースにインデックス付けしています。
これを少しスピードアップするために私ができることはありますか?ご協力いただきありがとうございます :)
SELECT z.contact_id, z.contact_firstName, z.contact_lastName, RIGHT(z.contact_lastName,1) AS nameNum
FROM (`contacts` x)
JOIN `contacts` z ON `x`.`contact_firstName` = `z`.`contact_firstName`
AND x.contact_lastName = z.contact_lastName
AND x.contact_client_id = ".$ID."
AND z.contact_client_id = ".$ID."
WHERE `x`.`contact_id` < `z`.`contact_id`
GROUP BY `z`.`contact_id`