无法连接varchar和==

时间:2017-02-21 22:48:28

标签: php postgresql laravel-4

我正在使用postgresql 9 我正在运行查询以base64解码一个值并打印其结果:

SELECT convert_from(decode(CONCAT('aWFuY3VkYXRlc3QrMTAwQGdtYWlsLmNvbQ','=='),'base64'),'utf-8');

但是,当我在表上运行相同的查询时,我会收到错误: 我的查询的第1版:

SELECT t.data,convert_from(decode(CONCAT(t.data,'=='),'base64'),'utf-8')
FROM table t;

上面给了我ERROR: unexpected "=" 我的查询的第2版:

SELECT t.data,convert_from(decode(t.data,'base64'),'utf-8')
FROM table t;

上面给了我ERROR: invalid byte sequence for encoding "UTF8": 0x8c

t.data在我的表格中是数据类型Varchar(255)。

我无法弄清楚如何解决这个问题。是否有不同的方法来解码base64数据并从查询中打印出来?

1 个答案:

答案 0 :(得分:0)

只需使用||代替concat

SELECT convert_from(decode('aWFuY3VkYXRlc3QrMTAwQGdtYWlsLmNvbQ' || '==','base64'),'utf-8');
       convert_from        
---------------------------
 iancudatest+100@gmail.com

表格:

SELECT t.data,
       convert_from(decode(t.data::text || '==','base64'),'utf-8')
FROM table t;