Ale*_*ley 10 postgresql inet sql-like
我需要执行以下查询:
SELECT * FROM users WHERE ip LIKE '88.99.%';
Run Code Online (Sandbox Code Playgroud)
问题是inet数据类型似乎不支持通配符(至少不是我在前面的查询中使用它们的方式).
我想知道的是,在指定LIKE过滤器之前将字段转换为字符串是否是明智之举?(另一方面,即使方法本身有效,这可能会减慢整个查询的速度.)
Jak*_*nia 24
使用子网运算符进行此类查询.'88.99.0.0/16'应该这样做:
SELECT * FROM users WHERE ip << inet '88.99.0.0/16';
Run Code Online (Sandbox Code Playgroud)
如果你想进行字符串比较,另一个对我有用的选项是:
SELECT * FROM users WHERE TEXT(ip) LIKE '88.99.%';
Run Code Online (Sandbox Code Playgroud)
虽然它的效率低于" 如何在Postgres中使用LIKE on inet字段 ".
参考:https://www.postgresql.org/docs/8.2/static/functions-net.html
| 归档时间: |
|
| 查看次数: |
8025 次 |
| 最近记录: |