我有一个带有bytea字段的表,如果我可以通过命令行(或pgAdmin的查询执行程序)进行查询,那将会很方便.我将十六进制值作为字符串.是否有内置函数将十六进制转换为bytea?
我想做点什么:
SELECT * FROM table WHERE my_bytea_field=some_???_function('fa26e312');
Run Code Online (Sandbox Code Playgroud)
其中'fa26e312'是我想要的bytea字段的十六进制值.
注意:这只是为了在我开发/调试时有所帮助,我可以通过代码完成,但我希望能够在查询中手动完成.
尝试使用内置decode(string text, type text)函数(它返回bytea)。您可以通过CLI psql在非交互模式下(通过-cswitch)运行查询(如果需要,可以使用一些格式化选项):
psql -c "SELECT * FROM table WHERE my_bytea_field=decode('fa26e312', 'hex');"
Run Code Online (Sandbox Code Playgroud)
例:
CREATE TABLE test(id serial, my_bytea_field bytea);
INSERT INTO test (my_bytea_field) VALUES
(E'\\320\\170'::bytea),
(E'\\100\\070'::bytea),
(E'\\377\\377'::bytea);
psql -tc "SELECT * FROM test WHERE my_bytea_field=decode('ffff', 'hex');"
3 | \377\377
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10266 次 |
| 最近记录: |