mysql - 如何使用 ST_contains 从 MySQL 8 中的表中进行选择?
问题描述
我有一个名为“社区”的表,其中有一列名为坐标,类型为 Point。
我有一个矩形。
我正在尝试选择 .coordinates 落在该矩形内的所有行。
这是我正在尝试做的事情:
SELECT * FROM `tribemap-db`.community
WHERE ST_Contains(POLYGON(34.6002788228068 31.821252014924383,
35.21282317828298 31.821252014924383,
34.6002788228068 32.08220723021857,
35.21282317828298 32.08220723021857), community.coordinates);
这给了我一个错误:
对于此服务器版本等,“SELECT”在此位置无效。
如何正确编写此查询?
解决方案
知道了。
我所需要的只是边界矩形的两个相对角。
接着:
SELECT *
FROM `tribemap-db`.`community`
WHERE ST_CONTAINS(ST_MakeEnvelope(
Point(34.60, 32.08),
Point(35.21, 31.82)
), community.coordinates);
而已!
推荐阅读
- javascript - iframe 正在破坏浏览器的后退按钮
- php - 如何遍历 PHP 上的产品和类别列表
- amazon-web-services - 通过架构更改在 S3 和 Redshift 之间卸载和重新加载数据
- matlab - 用底函数定义周期函数
- google-cloud-platform - Firebase 动态链接在 Twitter 和 LinkedIn 中被标记为可疑
- accessibility - 屏幕阅读器和浏览器事件
- c++ - 将函数作为可变参数模板参数传递,并调用它们
- python - 自动礼物的循环问题
- c# - 从 VS 构建中的 Release/Debug 文件夹中删除 DLL
- database - 无法使用 JDBC 连接到 Oracle 11g 企业版