だから私はデータベーステーブルのいくつかの電話レコードをきれいにしようとしています.
以下を使用して、2 つのフィールドで完全一致を検索する方法を見つけました。
/* DUPLICATE first & last names */
SELECT
`First Name`,
`Last Name`,
COUNT(*) c
FROM phone.contacts
GROUP BY
`Last Name`,
`First Name`
HAVING c > 1;
うわー、素晴らしい。
さらに拡張して、多数のフィールドを調べて、3 つの電話フィールドのうちの 1 つの電話番号が重複しているかどうかを確認します。
general mobile
だから私は3つのフィールド( 、general phone
、 )をチェックしたいbusiness phone
。
1. それらが空でないことを確認する ('') 2. それらのいずれかのデータ (数値) が、テーブル内の他の 2 つの電話フィールドに表示されるかどうかを確認します。
そのため、制限された SQL を限界を超えてプッシュすると、3 つの空の電話フィールドを持つレコードと、電話番号が重複していないレコードを返すように見える次のようになりました。
/* DUPLICATE general & business phone nos */
SELECT
id,
`first name`,
`last name`,
`general mobile`,
`general phone`,
`general email`,
`business phone`,
COUNT(CASE WHEN `general mobile` <> '' THEN 1 ELSE NULL END) as gen_mob,
COUNT(CASE WHEN `general phone` <> '' THEN 1 ELSE NULL END) as gen_phone,
COUNT(CASE WHEN `business phone` <> '' THEN 1 ELSE NULL END) as bus_phone
FROM phone.contacts
GROUP BY
`general mobile`,
`general phone`,
`business phone`
HAVING gen_mob > 1 OR gen_phone > 1 OR bus_phone > 1;
明らかに私の論理には欠陥があり、誰かが私を正しい方向に向けたり、同情したりできるかどうか疑問に思いました...
どうもありがとう