如何爆炸并找到XYZ坐标的平均值

时间:2014-03-26 21:03:24

标签: php mysql sql explode

我在表格中有一个列XYZ,其中存储了(x,y,z)个坐标。我想找到该列的平均值。 当我尝试以下SQL时,

SELECT AVG(xyz) FROM table1

它只给我x -coordinate的平均值。我试图在php代码中使用结果。

所以我也试过

$xyz = mysql_query("SELECT xyz FROM  `notes_two` where id=".$id);
list($leftx,$topy,$zindexz) = explode('x',$xyz);

但我仍然不知道如何找到列xyz的所有行的平均值

这是我的table

1 个答案:

答案 0 :(得分:2)

使用查询,您可以

Select SUBSTRING_INDEX(xyz,'x',1) as x ,
SUBSTRING_INDEX(SUBSTRING_INDEX(xyz,'x',-2),'x',1) as y ,
SUBSTRING_INDEX(xyz,'x',-1) as z from table1

查看演示http://sqlfiddle.com/#!2/62208/10

然后使用常规PHP你可以获得每行的平均值。

或直接与您可以做的查询

Select 
AVG(x) as AVG_X,
AVG(Y) as AVG_Y,
AVG(z) as AVG_Z
from
(
  select
  SUBSTRING_INDEX(xyz,'x',1) as x ,
  SUBSTRING_INDEX(SUBSTRING_INDEX(xyz,'x',-2),'x',1) as y ,
  SUBSTRING_INDEX(xyz,'x',-1) as z from table1
 )t1

在这里查看演示http://sqlfiddle.com/#!2/62208/11