php - mysql如何合并一个表中相似的记录

标签 php mysql

表:

ID / Name / Type / Taste / Score

1 / Cox / apple / good / NULL

2 / Cox / pear / NULL / 6

3 / Bob / apple / great / NULL

4 / Rod / pear / NULL / 9

5 / King / pear / NULL / 3

6 / King / apple / bad / NULL

如您所见: 'apples' 有一个 'Taste' 值但没有 'Score' “梨”没有“味道”值,但有一个“分数”。

我想将它们合并在一起,这样如果两条记录具有相同的“名称”,那么它们将成为一条记录,其“味道”值取自苹果,“分数”取自梨。

当使用上表时,我想要的输出是这样的:

ID/姓名/类型/口味/分数

1/考克斯/苹果/好/6

3/Bob/apple/great/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/

相关文章:

php - 从 MySQL 更改为 MySQLi 或 PDO

php - 如何在 ubuntu 14.04 中从本地主机发送邮件

javascript - 如何以类似于 onsubmit ="return javascript function"的形式在提交按钮上执行 php 函数?

php - 使用 PHP foreach 解析 JSON 数组

php - SilverStripe Translatable 在默认区域设置中保存值,并将其复制到非默认区域设置

php - 使用 php 搜索查询来搜索和下载 mp3 文件

MySQL 查询 - 优化

php - mysql有多少搜索结果

PHP - 对数组中的一个键使用函数

java - JDBC 找不到合适的驱动程序