CREATE table `duplicat` LIKE `orginal`;
INSERT `duplicat` SELECT * FROM `orginal`;
SELECT
col1, COUNT(col1),
col2, COUNT(col2)
FROM
table_name
GROUP BY
col1,
col2
HAVING
(COUNT(col1) > 1) AND
(COUNT(col2) > 1);
## Find ALL duplicate recods by value (without grouping them by value) ##
# to find the duplicate,
# replace all instances of tableName with your table name
# and all instances of duplicateField with the field name where you look for duplicates
SELECT t1.*
FROM tableName AS t1
INNER JOIN(
SELECT duplicateField
FROM tableName
GROUP BY duplicateField
HAVING COUNT(duplicateField) > 1
)temp ON t1.duplicateField = temp.duplicateField
order by duplicateField
-- You can duplicate or "clone" a table's contents by executing
> CREATE TABLE new_table AS SELECT * FROM original_table;
-- keep in mind that new new_table inherits ONLY the basic column definitions, null settings
-- and default values of the original_table. It does not inherit indexes and auto_increment
-- definitions.
-------------------------------------------------------------------------------------------
-- To inherit all table definitions
> CREATE TABLE new_table LIKE original_table; -- copy table structure only
> INSERT INTO new_table SELECT * FROM original_table; -- add data from old table
SELECT firstname,
lastname,
list.address
FROM list
INNER JOIN (SELECT address
FROM list
GROUP BY address
HAVING COUNT(id) > 1) dup
ON list.address = dup.address;
# Duplicate rows or row
INSERT INTO table (col1, col2, col3)
SELECT col1, col2, col3 FROM table
WHERE something...;