Php 无法将varchar和==
我正在使用postgresql 9 我正在运行一个查询,以base64解码一个值并打印其结果:Php 无法将varchar和==,php,postgresql,laravel-4,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
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;
SELECT t.data,convert_from(decode(t.data,'base64'),'utf-8')
FROM table t;
上面给出了我的错误:意外的“=”
我的查询的版本2:
SELECT t.data,convert_from(decode(CONCAT(t.data,'=='),'base64'),'utf-8')
FROM table t;
SELECT t.data,convert_from(decode(t.data,'base64'),'utf-8')
FROM table t;
上面给出了错误:编码“UTF8”的字节序列无效:0x8c
t、 在我的表t中,数据类型为Varchar(255)
我不知道如何解决这个问题。是否有其他方法解码base64数据并从查询中打印出来?只需使用
|
而不是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;
这个查询字符串周围有单引号还是双引号?我根本没有任何类型的引号。我认为这与t.data值的长度有关。选择t.data,从表t中转换(解码(t.data.promo_代码::text | |'=','base64'),'utf-8');正在给我意外的错误“=”。我认为t.data值的长度是不同的,这是导致错误的原因。抱歉-two
=
-->t.data::text | |'==='谢谢你,罗曼,这个问题已经通过你的建议部分解决了,但实际上,我有一些字符较少的记录抛出了错误。