【问题标题】:Mysql function CONTAINS and GEOMFROMTEXT does not workingMysql 函数 CONTAINS 和 GEOMFROMTEXT 不起作用
【发布时间】:2019-07-17 07:05:12
【问题描述】:

所以我有这个方法,其中包含来自 mysql 的几何函数:

select *, (SELECT SUM(t_o.value) FROM tree_operations t_o WHERE t_o.operation_id = operations.id) operationTreeValue, (SELECT COUNT(t_o.id)  FROM `tree_operations` t_o WHERE t_o.operation_id = operations.id) operationTreeNumber, (CASE\r                          WHEN operations.type = 'pieces' THEN (SELECT GROUP_CONCAT(p.name) FROM `pieces` p WHERE p.id IN (SELECT piece_id FROM `piece_row_operations` WHERE operation_id = operations.id))\r                          WHEN operations.type = 'rows' THEN (SELECT GROUP_CONCAT(r.number) FROM `rows` r WHERE r.id IN (SELECT row_id FROM `piece_row_operations` WHERE operation_id = operations.id))\r                          END) AS typeName from `operations` where operations.id IN (SELECT t_o.operation_id FROM `tree_operations` t_o WHERE t_o.tree_id IN (SELECT t.id FROM `trees` t WHERE t.coordinates IN (Contains(GeomFromText('POLYGON(49.816472 35.971209,49.7868 35.970981,49.788668 35.947219,49.15201 35.947905,49.816472 35.971209)'))))) order by `operations`.`id` desc

但令人惊讶的是它在服务器上不起作用(虽然在本地完全没问题) 在花费大量时间之后(在不同的环境中运行查询等等),我无法得到任何可靠的答案。 我的查询有什么问题还是功能不再起作用? p.s:我本地的mysql版本是5.7,服务器是mariadb 10.2

【问题讨论】:

  • 请提供Mysql版本。
  • @P.Salmon 问题已被编辑。
  • GeomFromText() 和 GeometryFromText() 自 MySQL 5.7.6 起已弃用,并将在未来的 MySQL 版本中删除。请改用 ST_GeomFromText() 和 ST_GeometryFromText()。 - dev.mysql.com/doc/refman/5.7/en/gis-wkt-functions.html
  • 拥有不同的本地版本和服务器版本很危险,但是将完全独立维护的服务器混入其中是冒险的。

标签: mysql


【解决方案1】:

从 MySQL 5.7.6 开始,某些 mysql 函数如 GeomFromText() 已被弃用;

改用 MariaDB@latest && ST_GeomFromText() 和 ST_(其他函数)

【讨论】:

    猜你喜欢
    • 2016-01-03
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 2012-05-05
    • 1970-01-01
    相关资源
    最近更新 更多