所有,
说我有以下数据集:


id     docId        meta_key    meta_value
1    356          rating           2.0
2    356     total_votes            10
3    356    total_rating           200


基本上,我试图通过选择docId为356并仅选择列出的meta_key行来提取meta_value列中的所有值。

任何想法如何在单个查询中执行此操作?

编辑:我想要的输出将是这样的:
rating     total_votes    total_rating
2.0        10             200

我正在尝试获取它,以便可以在PHP中将这些值与mysql_fetch_array一起使用。

谢谢!

最佳答案

您要的是pivot table。不幸的是,MySQL不提供用于生成数据透视表的功能。

它仍然可行,但是有两列以上,它开始变得混乱。

我将遍历PHP中的记录并构建数组。

借用Ghost Developer的答案:

$assoc_array = array();
$query = "SELECT meta_key, meta_value FROM table WHERE docId=356";
$result = mysqli_query($link, $query);
while ($row = mysqli_fetch_assoc($result)) {
    $assoc_array[$row['meta_key']] = $row['meta_value'];
}
mysqli_free_result($result);

10-05 19:25