table :

如你看到的:
'apples' 有一个 'Taste' 值但没有 'Score'
“梨”没有“味道”值(value),但有“分数”。
我想将它们合并在一起,以便如果两条记录具有相同的“名称”,那么它们将成为一条记录,其中“味道”值取自 Apple,而“Score”取自 Pear。
使用上表时,我想要的输出是这样的:
ID/名称/类型/口味/分数
1/考克斯/苹果/好/6
3/鲍勃/苹果/很棒/NULL
4/杆/梨/NULL/9
5/王/梨/坏/3
我正在使用 MySQL 和 PHP。我想它可以使用任何一个来完成。

最佳答案

您可以使用条件聚合来做到这一点:

SELECT min(t.id),t.name,min(t.Type),
       MAX(CASE WHEN t.type = 'apple' then t.taste END) as taste,
       MAX(CASE WHEN t.type = 'pear' then t.Score END) as Score
FROM YourTable t
GROUP BY t.name

关于php - mysql如何合并表中的相似记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37414821/

10-13 23:09