>  Q&A  >  본문

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

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

PHP中文网PHP中文网2741일 전917

모든 응답(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의 네 부분으로 구성되며 각 부분은 1Byte이고 네 부분은 정확히 4Byte인 정수입니다.

    회신하다
    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
  • 취소회신하다