gpt4 book ai didi

php - MySQL:无法使用 WHERE 子句返回 POINT 类型

转载 作者:行者123 更新时间:2023-11-29 22:16:19 25 4
gpt4 key购买 nike

我在 MySQL 数据库中存储了一些点,它们存储为具有 x 和 y 值的 POINT 类型。我正在尝试使用 WHERE 子句中的 x 和 y 值搜索并返回特定点。

这是我试图开始工作的查询示例:

"SELECT id, x(coords) AS lng, y(coords) AS lat
FROM my_points
WHERE x(coords) = $lng AND y(coords) = $lat"

但这不起作用。我没有 MySQL 空间类型的经验,任何帮助将不胜感激!

下面的评论提供了更多信息:

我应该提到,我实际上使用 PHP 框架 ORM 进行数据库查询,我上面编写的 SQL 只是假设代表我试图使用 ORM 语法实现的目标。我不认为问题出在 ORM 上,因为我之前在“WHERE”子句中使用过其他函数。我只是不太确定在“WHERE”子句中使用“x() = lng AND y() = lat”是否正确。使用正常的正确 SQL 语法,您在 WHERE 子句中使用 x() AND y() 可以给我我想要的东西吗?

最佳答案

如果您的列名称中确实包含括号,您需要反勾选它们:

SELECT `id`, `x(coords)` AS `lng`, `y(coords)` AS `lat`
FROM `my_points`
WHERE `x(coords)` = $lng AND `y(coords)` = $lat

所有未加引号的列名和表名都可以包含服务器默认字符集中的任何字母数字字符以及字符“_”和“$”。名称可以以名称中合法的任何字符开头,包括数字。

列和表名称应位于反引号中,这允许使用除反引号、ASCII 0 和 ASCII 255 之外的任何字符。当名称包含特殊字符或保留字时,这非常有用。

数据库和表名称有两个额外的限制,即使您反勾它们。首先,你不能使用“.”。字符,因为它是database_name.table_name 和database_name.table_name.col_name 表示法中的分隔符。其次,不能使用 UNIX 或 Windows 路径名分隔符(“/”或“\”)。

关于php - MySQL:无法使用 WHERE 子句返回 POINT 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31184569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com