大家好,可以对 MySQL/SqlServer 二进制数据类型进行算术运算吗?
例如,我在一列中存储了 256 位值。
我想选择 10000000000
(1024) 和 10011010100111110101
(633333) 之间的值。
数据库是否提供此功能?
或者将其存储为 4 个 64 位整数列是选择从 x 到 y 的范围的唯一方法吗?
最佳答案
'二进制数据类型'/二进制对象/根据定义,BLOB 对数据库是不透明的。如果您使用此类型,则由应用程序处理它。
如果您希望数据库处理/索引/查询您的数据,请选择它理解的数据类型。对于 SQL Server,BIGINT 是 8 个字节(64 位),而 NUMERIC 可以达到 38 位(~ 126 位)。在 MySQL 中,DECIMAL/NUMERIC 可以达到 64 或 65 位(~ 212 位)。
如果您在这里确实有真正的需求,您可以将实际重要的部分“分解”到它们自己的列中并查询这些部分。
在最直率和不知情的变通方法案例中,这可能是将您的 256 位 block 分成 2 或 4 个字;但如果您有任何实际需求,您应该能够确定更具体的商业利益部分。
关于mysql - 我们如何对 SQL 二进制数据类型执行操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7781511/