gpt4 book ai didi

php - MYSQL:在地理空间查询中使用 VARCHAR 字段作为 POINT

转载 作者:行者123 更新时间:2023-11-29 02:11:26 24 4
gpt4 key购买 nike

我决定检测两点之间的距离。其中一个点是静态的 -35.735019 51.410041,但是,另一个点是由数据库字段给出的点。

这是我的代码:

SELECT
r0_.restaurant_point AS restaurant_point_0,
ST_Distance(GeomFromText('POINT(35.735019 51.410041)'), GeomFromText('POINT(r0_.restaurant_point)')) *
100 AS sclr_1
FROM restaurants r0_

我们将 r0.restaurant_point 存储为 VARCHAR。以下面的字符串为例:35.73062161548168 51.410930156707764

虽然如果我用静态值更改 r0.restaurant_point 会起作用,但它无法通过数据库字段进行测量。

是否有绑定(bind)此值或其他解决方法?

最佳答案

要在表示该点的字符串中连接列 restaurant_point 的值,您可以使用 CONCAT() .

GeomFromText(CONCAT('POINT(', t.restaurant_point, ')'))

在您的情况下,您只是尝试创建一个点,而不是根据列中的坐标,而是根据列名本身。您需要按如下方式更改代码:

SELECT
r0_.restaurant_point AS restaurant_point_0,
ST_Distance(
GeomFromText('POINT(35.735019 51.410041)'),
GeomFromText(CONCAT('POINT(', r0_.restaurant_point, ')'))
) * 100 AS sclr_1
FROM restaurants r0_

关于php - MYSQL:在地理空间查询中使用 VARCHAR 字段作为 POINT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51301068/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com