Mysql SQL如何将相似的记录合并到同一表中的单行中?

Mysql SQL如何将相似的记录合并到同一表中的单行中?,mysql,sql,merge,records,Mysql,Sql,Merge,Records,我目前正试图清理一位前员工创建的邮件订户数据库。我已经能够整合和修复大多数问题(主要是重复的问题),但是我有订阅服务器的实例,它们具有重复的记录,因为它们订阅了多个区域。我想做的是把那些重复的记录合并成1 下面是一个我想合并的复制记录的实际修订示例: id first last address truck machinery gl ne nw ---------------------------------------------------

我目前正试图清理一位前员工创建的邮件订户数据库。我已经能够整合和修复大多数问题(主要是重复的问题),但是我有订阅服务器的实例,它们具有重复的记录,因为它们订阅了多个区域。我想做的是把那些重复的记录合并成1

下面是一个我想合并的复制记录的实际修订示例:

id     first     last    address    truck    machinery    gl    ne    nw
------------------------------------------------------------------------
1      Chuck     G....   12 Lorem   1                     1
2      Chuck     G....   12 Lorem            1                        1
3      Chuck     G....   12 Lorem            1                  1
我希望将2个记录合并为1个记录,并删除所有重复记录(有些记录最多有9个重复记录),如下所示:

id     first     last    address    truck    machinery    gl    ne    nw
------------------------------------------------------------------------
1      Chuck     G....   12 Lorem   1        1            1     1     1

使用
Group By
Max/Min
聚合

SELECT id, 
       first, 
       last, 
       address, 
       Max(truck)     AS truck, 
       Max(machinery) AS machinery, 
       Max(gl)        AS gl, 
       Max(ne)        AS ne, 
       Max(nw)        AS nw 
FROM   yourtable 
GROUP  BY id, 
          first, 
          last, 
          address 

如果某些行在同一列中包含不同的值,例如machinery=1,2,3,该怎么办?必须选择哪个值?在这些情况下,itll始终只能是“1”或NULL。其目的是简单地定义他们是否订阅该版本。因此,如果该列中重复行中的任何位置存在“1”,则应使用“1”。这么简单。使用这种选择,我能够创建一个新的订户列表,没有任何重复项,并且合并了所有适当的数据。当列为文本时,您将如何处理此问题?