我正试图从Postgres DB中获取一个存储为bytea的值 值是VLAN ID(所以整数在1-4096之间)。
但是,它存储在db(作为示例)中:
\000\000\001\221 (equal to 401)
我想让我的SQL查询返回整数值,如果可能的话,返回我的python代码。
经过一些搜索后,我可以使用get_byte来获取这4个octals中的一个(通过指定位置):
select get_byte(sub.datavlan_bytes,3) AS vlan -> this gives me the value of /221 (145)
然而,我无法获得全部价值。
是否有一种很好的方法可以在选择查询中获取数据,还是需要在我的脚本中进行?
答案 0 :(得分:2)
通过强制转换SQL:
jQuery(function ($) {
var x, y;
$(document).on('mousemove', '#waldo', function (event) {
x = event.pageX;
y = event.pageY;
$("#coords").html("(X: " + x + ", Y: " + y + ")");
});
});
答案 1 :(得分:0)
Postgres 9+为hex
值提供bytea
格式。如果您可以将bytea_output
连接设置设置为hex
(这是默认设置,因此它可能已经是......),您可以找回一个字符串,该字符串可以提供给Python的int(..., 16)
功能。这将直接获得你的401。
修改:Postgres文档:https://www.postgresql.org/docs/9.0/static/datatype-binary.html