mysql - 我们如何对 SQL 二进制数据类型执行操作?

标签 mysql sql database

大家好,可以对 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/

相关文章:

mysql - 在sql中将时间转换为时间戳

mysql - 尝试从多个表中删除多行时外键约束失败

php - 如何将多个迭代提取的数据值连接到单个函数调用中?

c# - sql查询统计每小时的数据输入

database - ElasticSearch –在查询1,000个条件时如何执行

database - 如何解决A/B key问题?

mysql - 如何从文章表 10 个最受欢迎的标签中获取行?

mysql - SQL查询GROUP BY,返回符合LEAST、COALESCE条件的分组

mysql - SQL - 如何选择不为 0 但可能为 NULL 的值?

MySQL 和 hibernate : performance of left outer join vs multiple selects