我希望能够将自定义行添加到结果集中。假设我有以下查询:
SELECT x, y, count(*) c
FROM cache
WHERE cache_id = 1
GROUP BY cache_key
示例性结果可以是:
x y c
4 5 2
12 16 6
现在我想在结果集中添加相关的行。假设我想为每个结果添加4行,这些行具有相邻坐标,并且计数较低,以获得如下结果:
x y c
4 5 2 (original row)
3 5 1 (added rows)
5 5 1
4 4 1
4 6 1
12 16 6 (original row)
11 16 3 (added rows)
13 16 3
12 15 3
12 17 3
在图像中说出,而不是:
2
6
我想要这个:
1
1 2 1
1
3
3 6 3
3
纯MySQL有可能吗?如果没有办法实现这一点,结果将在PHP之后处理。
答案 0 :(得分:0)
有可能进行自联接以完全在MySQL中实现这一点。但是,我认为这不是值得麻烦。
我的建议是在PHP中循环原始结果集并添加相邻坐标。最终结果将是您所需要的。
$coordinates = array();
while($row = mysql_fetch_assoc($result)) {
array_push($coordinates, $row);
// perform logic to add neighboring N, S, E, W coordinates to $coordinates
}