我在CodeIgniter 4中编程,我不知道如何使用CodeIgniter 4或直接使用PHP处理以下问题。
我有一个数据库表places
,其中一列coord
与每个地方的位置(坐标),类型为point
的MySQL列。多亏了CodeIgniter 4,我得到了所有的列,但是为了分别使用纬度和经度,我需要这样做:
select (*, st_x(coord) as lat, st_y(coord) as lon)
from ...
这样,我可以使用lat
和lon
。如果我只使用coord
,我会得到一些没有意义的东西。
是否有一种方法可以做到以下其中一种:
- 工作与
coord
变量获得经度和纬度在PHP? - 在MySQL表中添加一个函数,使选择(*)也返回lat和lon列(从
st_x(coord)
和st_y(coord)
计算)?
您可以为lat和lon添加虚拟生成的列-
ALTER TABLE places
ADD COLUMN lat DOUBLE GENERATED ALWAYS AS (ST_X(coord)) VIRTUAL,
ADD COLUMN lon DOUBLE GENERATED ALWAYS AS (ST_Y(coord)) VIRTUAL;