Re: Deleting duplicate entries from MySQL database table



Manish wrote:
Sorry for not formulating the question properly.

The scenario is as:
1. A table is created
2. No Primary Key, Unique Key, Validation process.
3. Various duplicate entries gor inserted in the table (all fields
contain same data)

May be programming login bug.

In the edit process, nothing is edited, (all data are same), and
instead of updating the record, new row get inserted.

4. Now it is desired that all the entries with duplicate entries gets
deleted abd only 1 record (within duplicate entry) remains in the
table.

As in shown in example.

Suppose a table "address" contains the following records

-------------------------------------------------------
| name | address | phone |
-------------------------------------------------------
| mr x | 8th lane | 124364 |
| mr x | 6th lane | 435783 |
| mrs x | 6th lane | 435783 |
| mr x | 8th lane | 124364 |
-------------------------------------------------------

Execute single query (MySQL Version: No Restriction), with sub-query or some other method
After executing the query

-------------------------------------------------------
| name | address | phone |
-------------------------------------------------------
| mr x | 8th lane | 124364 |
| mr x | 6th lane | 435783 |
| mrs x | 6th lane | 435783 |
-------------------------------------------------------

Here instead of deleting both duplicate entry

| mr x | 8th lane | 124364 |

only one gets deleted (out of two) and no duplicate entries are there
in table.

Hope it will clarify my question.

Thanks.

Manish



Use distinct and create a new table.

INSERT INTO nodupes VALUES SELECT DISTINCT * FROM dupes

the distinct modifier will make sure all the rows of the result set are
different.

Note: this is under the assumption that all fields of the duplicate
rows are the same.

Another way is to create second table and set the primary key to
whatever should be unique part. Then do INSERT INTO IGNORE nodupes
VALUES SELECT * FROM dupes
The ignore portion will ignore any duplicate key errors.

Alvaro G. Vicario wrote:
*** Manish escribió/wrote (7 Jul 2006 04:11:54 -0700):
Please suggest on this

If you don't make a question I don't really what you kind of suggestions
you are expecting. Anyway, the best way to avoid duplicate information is
having a good design so the database is normalised and using primary keys
and unique indexes so the dupes cannot be physically inserted.


--
-+ http://alvaro.es - Álvaro G. Vicario - Burgos, Spain
++ Mi sitio sobre programación web: http://bits.demogracia.com
+- Mi web de humor con rayos UVA: http://www.demogracia.com
--

.



Relevant Pages

  • Re: Allen Brownes function: "Duplicate record (and related child record)" -- my modified ver
    ... Duplicate the main form record and related records in the subform. ... Dim strSQL As String ... Dim lngOldID As Long '*** Primary key value of the orginial record. ... - "TrackingNumber" is primary key ...
    (microsoft.public.access.formscoding)
  • Re: Allen Brownes Copying forms/Subforms
    ... Is OrderID the primary key? ... Allen Browne - Microsoft MVP. ... perhaps the duplicate is on another field where you specified a "No ...
    (microsoft.public.access.modulesdaovba)
  • RE: Duplicate record with child fields
    ... with the sub table tblWesternBlotWorksheetsub ... record and trying to put it in the primary key of the new record. ... to copy duplicate records with child fields. ... GelNumber is the primary Key in the main table with a 1:N relationship ...
    (microsoft.public.access.forms)
  • Re: Duplicate the record in form and subform
    ... Have changed the code as below but got an error message "Error#3061, ... Dim strSql As String 'SQL statement. ... Dim lngID As String 'Primary key value of the new record. ... 'Make sure there is a record to duplicate. ...
    (microsoft.public.access.formscoding)
  • Re: Combo Box Problem
    ... I return to the form then click on the "Duplicate" ... fields "Tab Index" number to some other number. ... > record and duplicate the primary key. ... > Now when you duplicate the record the Customer will be brought forward. ...
    (microsoft.public.access.forms)