ホームページ  >  に質問  >  本文

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

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

PHP中文网PHP中文网2741日前914

全員に返信(7)返信します

  • 高洛峰

    高洛峰2017-04-18 09:56:59

    Postgres にはすでに IP タイプがあり、設計時にフィールド タイプとして使用する必要があります

    とにかく、この問題について言及したので、それを IP タイプに変換して並べ替えるだけです

    リーリー

    返事
    0
  • PHPz

    PHPz2017-04-18 09:56:59

    整数に変換してから並べ替えます。 IP などのフィールドについては、文字列ではなく整数をデータベースに直接保存することも推奨されます

    変換の例を示します:

    リーリー

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 09:56:59

    IP アドレスを最初に int 型に変換してからデータベースに保存できます。または、データベース内の文字列を取得し、Java の Long に変換して比較します。

    IP アドレスは 0 ~ 255 の 4 つの部分で構成され、各部分は 1 バイトであり、4 つの部分はちょうど 4 バイトの整数です。

    返事
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:56:59

    シェルは次のようにソートできます:

    リーリー

    vim での並べ替え:

    リーリー

    最後に、Python バージョンを示します。Java で変更できます。

    リーリー

    返事
    0
  • PHPz

    PHPz2017-04-18 09:56:59

    int に変換して並べ替えます

    リーリー

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 09:56:59

    アイデア: 各フィールドごとに並べる

    リーリー

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 09:56:59

    アイデアは、IP を整数に変換してから並べ替えることです。

    リーリー

    返事
    0
  • キャンセル返事