【问题标题】:mysql delete record group by excluding group bymysql 通过排除组来删除记录组
【发布时间】:2013-02-13 19:11:18
【问题描述】:

我有一张这样的桌子:

| id | EAN | supplier_code |
|0001|11111|         aaaaaa|
|0002|22222|         aaaaaa|
|0003|33333|         bbbbbb|
|0004|33333|         cccccc|
|0005|11111|         aaaaaa|

我必须删除像 3 和 4 这样的 ID,因为它们是脏数据。 如何编写一个选择来找到它们?

类似的东西

SELECT id, EAN, supplier_code, COUNT( id ) AS NumDuplicati
FROM table
WHERE supplier_code <>  ""
GROUP BY EAN
HAVING NumDuplicati >1

但我不能删除像 1 和 5 这样的 ID...

【问题讨论】:

  • 所以 ID 的 0003 和 0004 需要去掉,因为它们对于同一个 EAN 有不同的供应商代码?

标签: mysql select group-by


【解决方案1】:

未经测试:不确定您是否可以在这样的情况下与众不同...

delete from yourTable where EAN in (
Select EAN
FROM yourTable
Group by EAN
having count(distinct supplier_Code ) > 1)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多