PostgreSQL中的十六进制比较

PostgreSQL中的十六进制比较,postgresql,Postgresql,我有表“abc”(字段:a、b、c) 存储b和c必须使用什么数据类型 如何在a和c之间选择全部并检查(其中)是否为“BBB” 输入为十六进制值 更快的方法是什么?比较postgreSQL中的int或hex 谢谢在PostgreSQL中以整数类型存储该值,并在应用程序或存储过程中在十六进制和十进制之间进行转换。这将产生比使用带有列函数的WHERE子句更好的性能,因为在大多数情况下,在检查列函数的结果时不能使用索引。将值作为整数类型存储在PostgreSQL中,并在应用程序或存储过程中在十六进制和十

我有表“abc”(字段:a、b、c)

存储b和c必须使用什么数据类型

如何在a和c之间选择全部并检查(其中)是否为“BBB”

输入为十六进制值

更快的方法是什么?比较postgreSQL中的int或hex


谢谢

在PostgreSQL中以整数类型存储该值,并在应用程序或存储过程中在十六进制和十进制之间进行转换。这将产生比使用带有列函数的
WHERE
子句更好的性能,因为在大多数情况下,在检查列函数的结果时不能使用索引。

将值作为整数类型存储在PostgreSQL中,并在应用程序或存储过程中在十六进制和十进制之间进行转换。这将产生比使用带有列函数的
WHERE
子句更好的性能,因为在大多数情况下,在检查列函数的结果时不能使用索引。

您的目标是哪个版本的postgresql?您的目标是哪个版本的postgresql?您好,谢谢你的回答,所以postgre不能直接比较十六进制值?没有“十六进制值”这种东西——十六进制是数字表示,就像十进制一样。它们都用来表示数字。您可以使用,例如,
CAST(x'BBB'AS INT)
将十六进制字符串转换为相应的整数值。您可以在最新版本的PostgreSQL中进行转换。但是在这种情况下没有必要这样做。@Thessa,如果你想在你的查询中写十六进制数字,你可以写像
x'BBB':integer
或使用
CAST
,如cdhowie所示。但是请记住数字(存储在数据库中的整数)和数字之间的区别,这只是一些表示。嗨,cdhowie,谢谢你的回答,所以postgre不能直接比较十六进制值?没有“十六进制值”这样的东西——十六进制是数字表示,就像十进制一样。它们都用来表示数字。您可以使用,例如,
CAST(x'BBB'AS INT)
将十六进制字符串转换为相应的整数值。您可以在最新版本的PostgreSQL中进行转换。但是在这种情况下没有必要这样做。@Thessa,如果你想在你的查询中写十六进制数字,你可以写像
x'BBB':integer
或使用
CAST
,如cdhowie所示。但请记住数字(存储在数据库中的整数)和数字之间的区别,数字只是一些表示形式。
a = unique id
b = start hex value, ex: AA3
c = end hex value, ex : FA8