所有,
说我有以下数据集:
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);