telephone
フィールドに重複している電話番号が多数あります。どのようにSQLでそれを行うことができますか?重複の削除
重複しているレコードを削除したいと思います。
また、複製されているものがいくつあるか知りたいですか?
おかげ
telephone
フィールドに重複している電話番号が多数あります。どのようにSQLでそれを行うことができますか?重複の削除
重複しているレコードを削除したいと思います。
また、複製されているものがいくつあるか知りたいですか?
おかげ
このお試しください:これは最初の1人の
注意を除いて、その電話番号にすべてのエントリを削除します
DELETE FROM phonenumbers WHERE telephone = "[phone number here]" AND id NOT IN (SELECT id FROM phonenumbers WHERE telephone = "[phone number here]" LIMIT 1)
を、これはあなたに固有の識別子ID
を持っていると仮定しています表。 (そして、あなたのテーブル名はphonenumbers
ある
このクエリは役立つかもしれないあなたの本当のテーブル名にそのを変更します。。
DELETE `P`.*
FROM `phones` `P`
LEFT JOIN (
SELECT `telephone`, MIN(`id`) `ids`
FROM `phones`
GROUP BY `telephone`
) `TA` ON `P`.`id` = `TA`.`ids`
WHERE `TA`.`ids` IS NULL;
自分のスキーマごとにテーブル名やフィールド名を変更するには注意してください。また、上記のことを前提としてい。あなたのテーブルがプライマリ列は、上記のクエリでid
と表記
ロジックがありました:
上記のクエリの利点は、1回のショットですべての重複レコードが削除されることです。重複カウントのため
、あなたは次のように何かをすることがあります。
SELECT `telephone`, COUNT(1) `cnt`
FROM `phones`
GROUP BY `telephone`
HAVING COUNT(1) > 1
それが役に立てば幸い!あなたが古いaddrbookテーブルを削除し、あなたが望んだ場合addrbookする新しいaddrbook2の名前を変更することができ
CREATE TABLE addrbook2
SELECT * FROM addrbook GROUP BY telephone
:ここ
@ user791022、ソリューションを試してみませんか?それは動作しましたか? – Abhay
は「電話」フィールドを複製欠けて新しいものへのコピーがあなたのテーブルシンプルなものです。
可能な複製http://stackoverflow.com/q/8567007/27535またはhttp://stackoverflow.com/q/8590010/27535とmore more – gbn
SQLのみを使用する必要がありますか?あなたはそのためのビットコードを書いていますか? これは、コードfuction –
の可能性のある複製[mysqlデータベースの重複を削除](http://stackoverflow.com/questions/8793231/remove-duplicates-in-mysql-database) –