我对数据库有一点问题,从xls收取regisrtos并且可以加载两个以上相同的xls生成重复记录,我不能限制它是唯一的因为它们是在几列中重复的记录...我告诉他们
id| Fecha | EquipoA | EquipoB | Categoria | Cancha | Hora | Nr_J1 | Nombre_J1 | Apellido_J1 | Nr_J2 | Nombre_J2 | Apellido_J2
1 |Sáb 09 Abr | San Juan | Edu | sub18 | San Juan | 15:00 | 39 | A. | Aunchayna | 95 | S. | Villizio
2 |Sáb 09 Abr | San Juan | Impulso | sub16 | San Juan | 16:30 | 39 | A. | Aunchayna | 95 | S. | Villizio
3 |Sáb 09 Abr | San Juan A| ISASA | sub16 | San Juan | 18:00 | 39 | A. | Aunchayna | 95 | S. | Villizio
4 |Sáb 09 Abr | San Juan | ISASA | sub14 | San Juan | 19:30 | 39 | A. | Aunchayna | 95 | S. | Villizio
5 |Sáb 09 Abr | San Juan | Edu | sub18 | San Juan | 15:00 | 39 | A. | Aunchayna | 95 | S. | Villizio
这是一个示例寄存器1等于5 在所有列中,但其他在EquipoA或EquipoB或Hora中有所不同...... 所以我不能让它们变得独一无二p>
我需要在这种情况下清除日志重复5并离开1 我不是MySql的专家,我很难找到正确的查询
答案 0 :(得分:0)
似乎所有你需要的是SELECT DISTINCT:
PATH
答案 1 :(得分:0)
这将删除完全重复的内容(id
列除外):
delete t1
from Table1 t1
join Table1 t2 using (
`Fecha`,
`EquipoA`,
`EquipoB`,
`Categoria`,
`Cancha`,
`Hora`,
`Nr_J1`,
`Nombre_J1`,
`Apellido_J1`,
`Nr_J2`,
`Nombre_J2`,
`Apellido_J2`
)
where t1.id > t2.id
答案 2 :(得分:0)
很容易删除所有重复。您可以在所有必须不同的字段上添加带 IGNORE 的唯一INDEX:
ALTER IGNORE TABLE yourTable
ADD UNIQUE KEY idx_dup
( Fecha, EquipoA, EquipoB, Categoria, Cancha, Hora,
Nr_J1, Nombre_J1, Apellido_J1, Nr_J2, Nombre_J2, Apellido_J);
先保存你的桌子。
<强>样品强>
MariaDB [your_schema]> select * from orders;
+----------+------------+-------------+-----------+---------+
| order_id | order_date | order_total | client_id | ship_id |
+----------+------------+-------------+-----------+---------+
| 1 | 2016-03-12 | 10.00 | 1 | 1 |
| 2 | 2016-03-14 | 20.00 | 1 | 2 |
| 3 | 2016-04-13 | 30.00 | 1 | 2 |
| 9 | 2016-05-20 | 10.00 | 2 | 1 |
| 10 | 2016-06-03 | 20.00 | 2 | 2 |
| 11 | 2016-03-12 | 10.00 | 1 | 1 |
+----------+------------+-------------+-----------+---------+
6 rows in set (0.00 sec)
MariaDB [your_schema]> ALTER IGNORE TABLE orders ADD UNIQUE KEY dup (order_date,order_total,client_id,ship_id);
Query OK, 6 rows affected (0.29 sec)
Records: 6 Duplicates: 1 Warnings: 0
MariaDB [your_schema]> select * from orders;
+----------+------------+-------------+-----------+---------+
| order_id | order_date | order_total | client_id | ship_id |
+----------+------------+-------------+-----------+---------+
| 1 | 2016-03-12 | 10.00 | 1 | 1 |
| 2 | 2016-03-14 | 20.00 | 1 | 2 |
| 3 | 2016-04-13 | 30.00 | 1 | 2 |
| 9 | 2016-05-20 | 10.00 | 2 | 1 |
| 10 | 2016-06-03 | 20.00 | 2 | 2 |
+----------+------------+-------------+-----------+---------+
5 rows in set (0.00 sec)
MariaDB [your_schema]>