phpmyadmin、MariaDB 10 和 Point 列
phpmyadmin, MariaDB 10 and Point columns
尝试使用 PHPmyAdmin v5.1.1 在 MariaDB 中编辑 table 的列给我带来了麻烦。
它将列保存为二进制,我需要编辑整行以便能够将其编辑为文本。即使这样做,在适当字段旁边选择Edit/Insert时,我都会复制此内容:
'POINT(0 0)',0
但是这与 MariaDB 10 不兼容。目前唯一可行的是使用原始查询来更新字段,如下所示:
UPDATE `locations` SET `point` = POINT(1, 2) WHERE `locations`.`id` = 169;
我的问题是,有没有一种方法可以通过 PHPMyAdmin 的 UI 而不是 运行 手动查询来更新字段?
尝试更具体。这是列在 PHPMyAdmin 中的样子:
这是编辑行时的样子:
注意因为是WKB,所以不能直接编辑。但是,当添加到点字段时:
POINT(1, 1)
PHPMyAdmin 将其更改为:
'POINT(1, 1)'
而且它不起作用。
还需要逗号,否则 MariaDB 会抛出错误:
#1416 - Cannot get geometry object from data you send to the GEOMETRY field
如果使用 ST_PointFromText() function you can take Well-Known Text WKT format text input you show in your example. and turn it into the Well-Known Binary WKB 格式 suitable 用于存储在 table 中的 WKB 格式列中。像这样。
UPDATE locations
SET point = ST_PointFromText('POINT(1 2)')
WHERE whatever
请注意 POINT(1 2)
两个数字之间没有逗号分隔。点之间使用逗号,像这样。
LineString(1 1, 1 2, 2 2)
如果您想要 WKT(文本格式),请使用 ST_AsText()。这将使基于文本的客户端程序能够显示您的几何数据。
SELECT ST_AsText(point)
FROM locations
WHERE whatever
好吧,对于较新版本的 MySQL 和 MariaDB,这看起来像是 PHPMyAdmin 中的错误。在这篇最近的文章 here
中对此进行了描述
确实已经部署了修复程序并将在 PHPMyAdmin 5.1.2
中可用
尝试使用 PHPmyAdmin v5.1.1 在 MariaDB 中编辑 table 的列给我带来了麻烦。 它将列保存为二进制,我需要编辑整行以便能够将其编辑为文本。即使这样做,在适当字段旁边选择Edit/Insert时,我都会复制此内容:
'POINT(0 0)',0
但是这与 MariaDB 10 不兼容。目前唯一可行的是使用原始查询来更新字段,如下所示:
UPDATE `locations` SET `point` = POINT(1, 2) WHERE `locations`.`id` = 169;
我的问题是,有没有一种方法可以通过 PHPMyAdmin 的 UI 而不是 运行 手动查询来更新字段?
尝试更具体。这是列在 PHPMyAdmin 中的样子:
这是编辑行时的样子:
注意因为是WKB,所以不能直接编辑。但是,当添加到点字段时:
POINT(1, 1)
PHPMyAdmin 将其更改为:
'POINT(1, 1)'
而且它不起作用。
还需要逗号,否则 MariaDB 会抛出错误:
#1416 - Cannot get geometry object from data you send to the GEOMETRY field
如果使用 ST_PointFromText() function you can take Well-Known Text WKT format text input you show in your example. and turn it into the Well-Known Binary WKB 格式 suitable 用于存储在 table 中的 WKB 格式列中。像这样。
UPDATE locations
SET point = ST_PointFromText('POINT(1 2)')
WHERE whatever
请注意 POINT(1 2)
两个数字之间没有逗号分隔。点之间使用逗号,像这样。
LineString(1 1, 1 2, 2 2)
如果您想要 WKT(文本格式),请使用 ST_AsText()。这将使基于文本的客户端程序能够显示您的几何数据。
SELECT ST_AsText(point)
FROM locations
WHERE whatever
好吧,对于较新版本的 MySQL 和 MariaDB,这看起来像是 PHPMyAdmin 中的错误。在这篇最近的文章 here
中对此进行了描述确实已经部署了修复程序并将在 PHPMyAdmin 5.1.2
中可用