我需要执行以下查询:

SELECT * FROM users WHERE ip LIKE '88.99.%';

问题是 inet 数据类型似乎不支持通配符(至少不是我在前面的查询中使用它们的方式)。

我想知道的是,在指定 LIKE 过滤器之前将字段转换为字符串是否是明智之举? (另一方面,这可能会减慢整个查询的速度,即使该方法本身是有效的。)

最佳答案

将子网运算符用于此类查询。 '88.99.0.0/16' 应该这样做:

SELECT * FROM users WHERE ip << inet '88.99.0.0/16';

关于postgresql - 如何在 Postgres 的 inet 字段上使用 LIKE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16190669/

10-15 20:45