我的表中有一个列 XYZ
,其中存储了 (x,y,z)
坐标。我想找到该列的平均值。
当我尝试以下 SQL 时,
SELECT AVG(xyz) FROM table1
它只给出了x坐标
的平均值。我正在尝试在 php
代码中使用结果。
所以我也尝试过
$xyz = mysql_query("SELECT xyz FROM `notes_two` where id=".$id);
list($leftx,$topy,$zindexz) = explode('x',$xyz);
但我还是不知道如何求该列所有行的平均值xyz
这是我的 table
最佳答案
通过查询,您可以执行以下操作
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
关于php - 如何分解并找到 XYZ 坐标的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22672996/