数据库有IP一列,我想取出时按从小到大排列,但因为是字符串型,排列结果变成了x.x.x.1x.x.x.10x.x.x.11x.x.x.2.....有没有办法让字符串像数字一样从小到大排列?或者取出后在java中有什么办法?
认证高级PHP讲师
Postgres にはすでに IP タイプがあり、設計時にフィールド タイプとして使用する必要があります
とにかく、この問題について言及したので、それを IP タイプに変換して並べ替えるだけです
整数に変換してから並べ替えます。 IP などのフィールドについては、文字列ではなく整数をデータベースに直接保存することも推奨されます
変換の例を示します:
IP アドレスを最初に int 型に変換してからデータベースに保存できます。または、データベース内の文字列を取得し、Java の Long に変換して比較します。
IP アドレスは 0 ~ 255 の 4 つの部分で構成され、各部分は 1 バイトであり、4 つの部分はちょうど 4 バイトの整数です。
シェルは次のようにソートできます:
vim での並べ替え:
最後に、Python バージョンを示します。Java で変更できます。
int に変換して並べ替えます
アイデア: 各フィールドごとに並べる
アイデアは、IP を整数に変換してから並べ替えることです。
Postgres にはすでに IP タイプがあり、設計時にフィールド タイプとして使用する必要があります
とにかく、この問題について言及したので、それを IP タイプに変換して並べ替えるだけです
リーリー整数に変換してから並べ替えます。 IP などのフィールドについては、文字列ではなく整数をデータベースに直接保存することも推奨されます
変換の例を示します:
リーリーIP アドレスを最初に int 型に変換してからデータベースに保存できます。または、データベース内の文字列を取得し、Java の Long に変換して比較します。
IP アドレスは 0 ~ 255 の 4 つの部分で構成され、各部分は 1 バイトであり、4 つの部分はちょうど 4 バイトの整数です。
シェルは次のようにソートできます:
リーリーvim での並べ替え:
リーリー最後に、Python バージョンを示します。Java で変更できます。
リーリーint に変換して並べ替えます
リーリーアイデア: 各フィールドごとに並べる
リーリーアイデアは、IP を整数に変換してから並べ替えることです。
リーリー