在Postgres中使用replace()

时间:2015-05-07 15:09:42

标签: postgresql

此查询有效:

SELECT replace('hello world','world','andrew');

输出:

   replace    
--------------
 hello andrew
(1 row)

但这不是:

SELECT replace(geo,',',' ') FROM image_meta ;
ERROR:  function replace(point, unknown, unknown) does not exist
LINE 1: SELECT replace(geo,',',' ') FROM image_meta ;
               ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

(非工作示例最初发布不正确;这个是正确的。)

“geo”的数据类型为POINT

2 个答案:

答案 0 :(得分:0)

事实证明,您可以查询POINT数据类型的各个参数,所以

select geo[0],geo[1] from image_meta limit 1;

返回点的各个x,y值,以便我可以将它们转换为postGIS的几何数据类型。

我用来更新整个数据库的查询是

update image_meta SET geom=st_geographyfromtext('SRID=4326;POINT(' || geo[0] || ' ' || geo[1] || ')');

答案 1 :(得分:0)

SELECT ST_AsText(geo) FROM image_meta;

还会将几何图形作为文本。有了这个,你可以使用替换。