MySQL将系统函数调用解释为模式函数调用(错误代码1305:函数不存在)

时间:2013-07-04 12:58:54

标签: mysql query-optimization geospatial mysql-workbench spatial

我的问题是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 This is the doc

任何帮助:非常感谢!

1 个答案:

答案 0 :(得分:1)

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

  

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

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