0

我的问题是 MySQL 将我的函数调用检测为类似于本地模式存储过程调用。我不确定如何明确指定这是一个 MySQL 系统函数(或者我应该如何更改 SQL)。

我的 SQL 代码是:

set @p = GeomFromText('POINT(32.8303610 34.9743380)');
select OBJECTID FROM demog_yishuv_stat08_publish
where ST_Contains(demog_yishuv_stat08_publish.Shape, @p);

我得到的回应是:

Error Code: 1305. FUNCTION mySchema.ST_Contains does not exist

然而, ST_Contains是一个 MySQL 函数,未在 mySchema 中定义。这是ST_CONTAINS 的文档。

任何帮助:非常感谢!

4

1 回答 1

2

确保您使用的是 MySQL 5.6.1 或更高版本。ST_Contains 是在 5.6.1 中添加的。从您引用的文档中:

从 MySQL 5.6.1 开始,可以使用使用精确对象形状的相应版本。这些版本以 ST_ 前缀命名。例如, Contains() 使用对象边界矩形,而 ST_Contains() 使用对象形状。

以前版本的 MySQL 提供了一个 Contains 函数,该函数使用两个几何的 MBR,而不是它们的确切形状来进行测试。如果您无法升级 MySQL,这可能对您有用。

于 2013-07-06T16:04:24.853 回答