Postgresql 在Postgres中筛选int列的最佳方法

Postgresql 在Postgres中筛选int列的最佳方法,postgresql,sqlalchemy,Postgresql,Sqlalchemy,假设我有一张这样的桌子: id | value ----|------ 1 | 1200 2 | 3450 3 | 1230 4 | 1245 5 | 4512 id和value都是整数,现在我想筛选其值以12开头的所有行,在这种情况下,我想要这些id:1,3,4 我想出了一些不同的方法: 将值字段转换为字符串,然后使用像或正则表达式进行过滤 使用div将这些值除以100,然后进行比较 使用Shif Right将这些值移位2,然后进行比较 在第一种情况下,我不确定性能,因

假设我有一张这样的桌子:

id  | value
----|------
1   | 1200
2   | 3450
3   | 1230
4   | 1245
5   | 4512
id
value
都是整数,现在我想筛选其
12
开头的所有行,在这种情况下,我想要这些id:
1,3,4

我想出了一些不同的方法:

  • 字段转换为
    字符串
    ,然后使用
    正则表达式
    进行过滤
  • 使用
    div
    将这些值除以100,然后进行比较
  • 使用
    Shif Right
    将这些值移位2,然后进行比较
  • 在第一种情况下,我不确定性能,因为使用字符串的时间最多
    在第三种情况下,我不知道如何做,或者甚至有可能做类似的事情吗?

    一般来说,我想知道做这件事的最佳实践是什么,如何做?有没有更好的方法我找不到

    此外,我正在使用Postgres和SQLalchemy ORM,
    因此,可以接受SQL查询或SQLalchemy查询

    其中value>=1200,value<1300
    ?12呢?还是12000?如果您的值不是1000,您应该澄清可能值的范围。127346582346是否被视为相同的数字?如果有一个固定的数字,并且你知道这个数字,你可以选择你想要的任何“前缀”,加1作为上限,乘以适当的十次方,然后使用@a_horse_和_no_name的解。在这种情况下,我会说cast to text,然后继续。