SELECT ST_DistanceSphere(
ST_GeomFromText('POINT(127.058923 37.242621)', 4326), "geometryType")as distance FROM "MyTable"
WHERE ST_DistanceSphere(
ST_GeomFromText('POINT(127.058923 37.242621)', 4326), "geometryType") < 500;
SELECT ST_DistanceSphere(
ST_GeomFromText('POINT(${longitude} ${latitude})', 4326), "geometryType")as distance FROM "MyTable"
WHERE ST_DistanceSphere(
ST_GeomFromText('POINT(${longitude} ${latitude})', 4326), "geometryType") < 500;
按照A执行时,查询正常成功,但是按照B执行时,出现“无法确定参数$1的数据类型”的错误。
PostGIS 已正确安装在我的数据库中。
我尝试过使用 Prisma 的 $queryRaw 和 Node 包 postgres,但问题仍然没有解决。
ST_GeomFromText()
接受text
输入。第一个参数必须是有效格式的单个(连接)字符串。
连接并传递单个参数:
SELECT ST_GeomFromText('POINT(127.058923 37.242621)', 4326);
翻译为:
SELECT ST_GeomFromText(${point}, 4326);
或者让Postgres为您连接经度和纬度:
SELECT ST_GeomFromText(format('POINT(%s %s)', '127.058923', '37.242621'), 4326)
翻译为:
SELECT ST_GeomFromText(format('POINT(%s %s)', ${longitude}, ${latitude}), 4326)
Postgres 中有多种连接方式:
相关: