字符串型IP地址从小到大排序

数据库有IP一列,我想取出时按从小到大排列,但因为是字符串型,排列结果变成了
x.x.x.1
x.x.x.10
x.x.x.11
x.x.x.2.....
有没有办法让字符串像数字一样从小到大排列?或者取出后在java中有什么办法?

postgresql
sql
java
2022-09-01 12:43:51
浏览
收藏 0
回答 2
待解决
回答 2
按赞同
/
按时间
三联帮柯志华
2

Postgres本来就有IP类型,设计的时候就应该用上作为字段类型

Anyway,既然你提到了这个问题,那就把它转化为IP类型再排序即可

order by cast(ip as inet)

分享
微博
QQ
微信
回复
2022-09-01 15:32:55
pgdba

可以将字符串类型的IP地址​​转换​​成 PostgreSQL 中的 ​​网络地址类型​​,然后就可以从小到大排序了。

为了加快查询性能,可以考虑建立 ​​表达式索引​​,也可以考虑直接用 ​​网络地址类型​​ 存储,并建立普通​​索引​​。


分享
微博
QQ
微信
回复
2023-05-29 10:14:52
相关问题
sql 怎么对带单位字符串排序
401浏览 • 1回复 待解决
mysql order对数字型字符串排序
239浏览 • 1回复 待解决
关于字符串的分割和重组处理
1133浏览 • 1回复 待解决
mysql替换字符串的问题有知道的吗?
1015浏览 • 1回复 待解决
eTS中如何进行时间与字符串转换?
1276浏览 • 1回复 待解决
DataAbilityHelper怎么排序?
1853浏览 • 1回复 待解决
求HiTool工具下载地址
7755浏览 • 1回复 待解决