我的问题是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。
任何帮助:非常感谢!
答案 0 :(得分:1)
确保您使用的是MySQL 5.6.1或更高版本。 ST_Contains在5.6.1中添加。从您引用的文档:
从MySQL 5.6.1开始,可以使用相应的版本 精确的物体形状。这些版本以ST_前缀命名。 例如,Contains()使用对象边界矩形,而 ST_Contains()使用对象形状。
早期版本的MySQL提供了一个Contains函数,该函数使用两个几何的MBR而不是它们的确切形状进行测试。如果您无法升级MySQL,这可能对您有用。