bar / pipe分隔字段

时间:2012-05-31 05:45:51

标签: php postgresql

任何人都知道如何在数组字段中插入bar / pipe分隔数组?

使用逗号工作,但当我将其更改为bar时,会产生错误“malformed array literal”

示例(有效):

insert into table (arrayfield) values ('{"var1","var2","var3"}')

示例(不起作用):

insert into table (arrayfield) values ('{"var1"|"var2"|"var3"}')

顺便说一句,我正在使用postgres 8.2和PHP,由于各种原因,我不能使用逗号作为分隔符。

1 个答案:

答案 0 :(得分:1)

如果您可以使用没有引号的值,因为您知道数据中没有管道,那么您可以使用:

insert into table (arrayfield) select string_to_array('var1|var2|var3','|');

如果您需要在管道分隔的字符串上引用您的值,那么它会变得复杂。如果是这种情况,那么我认为您应该使用PHP中的ARRAY['val1','val2','val3']语法格式化和引用您的数组。