在 MySQL 函数调用中使用 Select 语句

Posted

技术标签:

【中文标题】在 MySQL 函数调用中使用 Select 语句【英文标题】:Using Select Statement in MySQL Function Call 【发布时间】:2011-08-26 03:52:01 【问题描述】:

在下面的 mysql 存储函数调用中,我想从另一个表中选择一个多边形来进行测试,而不是手动输入经纬度坐标。我在正确使用语法时遇到问题。

SELECT IS_POINT_IN_POLYGON(
POINTFROMTEXT( CONCAT( 'POINT(', latitude, ' ', longitude, ')' ) ) , POLYFROMTEXT( 'POLYGON((43.40930419213147, -72.5537109375
43.40884544242924, -72.53695249557495
43.38754804789373, -72.5437331199646
43.378580946950244, -72.58398771286011
43.40930419213147, -72.5537109375 ))' )
)AS result, latitude, longitude
FROM sport
WHERE sport_type = 'lacrosse' AND IS_POINT_IN_POLYGON(
POINTFROMTEXT( CONCAT( 'POINT(', latitude, ' ', longitude, ')' ) ) , POLYFROMTEXT( 'POLYGON((43.40930419213147, -72.5537109375
43.40884544242924, -72.53695249557495
43.38754804789373, -72.5437331199646
43.378580946950244, -72.58398771286011
43.40930419213147, -72.5537109375))' )
) = 1;

所以,我想删除 43.40930419213147, -72.5537109375 43.40884544242924,-72.53695249557495 43.38754804789373,-72.5437331199646 43.378580946950244,-72.58398771286011 43.40930419213147, -72.5537109375

相反,我想使用这个选择语句:

SELECT neighborhood_polygon FROM `neighborhood_shapes` WHERE neighborhood="XYZ neighborhood"

我有多边形存储在neighbor_shapes 中。其结构如下:

neighborhood_index smallint(3) 邻域 varchar(50) neighborhood_polygon(几何)

附加信息:

IS_POINT_IN_POLYGON 调用如下: IS_POINT_IN_POLYGON(p POINT, poly POLYGON)

有什么建议吗?

【问题讨论】:

【参考方案1】:

尝试这样做。

... POLYFROMTEXT(
    (SELECT neighborhood_polygon 
      FROM neighborhood_shapes 
      Where neighborhood = "XYZ neighborhood") as coords)

【讨论】:

您好 Tony318,感谢您的留言。我试过你的建议。不幸的是,我得到了“#1583 - 调用本机函数 'POLYFROMTEXT' 中的参数不正确”。如果您有任何其他想法,请告诉我。我已经尝试了我能想到的一切。谢谢。 @OMG Ponies,帮助 - 我需要你的 MySQL 才华! 可能保留多边形部分吗? POLYFROMTEXT('POLYGON('+ (SELECT neighbor_polygon FROMphthal_shapes WHERE 邻域 = "XYZ 邻域") as coords + ')') 试一试。我不太确定 嗨 Tony318,我会试试的。我也尝试使用 AsText-- SELECT AsText(neighborhood_polygon) FROM neighbor_shapes Where neighbor = "XYZ neighbor" 但没有运气。 除此之外我不太确定,我对你的问题投了赞成票,希望其他人能看到并弄清楚

以上是关于在 MySQL 函数调用中使用 Select 语句的主要内容,如果未能解决你的问题,请参考以下文章

mysql 存储过程中 查询语句后面的from加上变量名 怎么写

在返回 xml 数据的 select 语句中调用用户定义的函数

在 ORACLE 的 select 语句中从 PL/SQL 调用函数

在mysql中自定义的函数怎么调用

使用 select 语句在表值函数中传递参数

mysql函数编写