>  기사  >  백엔드 개발  >  데이터베이스의 지정된 규칙에 따른 정렬 문제에 대해

데이터베이스의 지정된 규칙에 따른 정렬 문제에 대해

WBOY
WBOY원래의
2016-08-04 09:21:43909검색

데이터베이스에는 쇼핑몰 이름을 저장하는 컬럼 스토어가 있습니다. 이제 쇼핑몰은 Taobao로 하고 다른 쇼핑몰은 데이터 생성 시간을 기준으로 정렬하고 페이징이 필요합니다.
몇 가지 아이디어가 있습니다
MySQL은 필드별로 정렬하는 방법을 제공하지만 파일에는 데이터베이스에 이미 존재하는 모든 쇼핑몰 유형이 포함되어야 합니다. 그렇지 않으면 포함되지 않은 쇼핑몰 유형이 정렬을 방해하지만 매장 아래의 쇼핑몰(예: as Nichia, etc.) 등)이 계속 증가할 것이기 때문에 이 SQL 문도 계속해서 변경될 것입니다. 그래서 좋은 해결책이 있는지 묻고 싶었습니다.
둘째, 매장의 디지털 ID에 해당하는 필드를 추가하고 디지털 ID로 정렬합니다. 그러나 제품은 이제 Taobao와 Amazon이 1위를 원하지만 Chao Lingxi는 Nichia가 1위를 차지하기를 원합니다. 이 논리가 중단되지 않습니까?
좋은 계획이 있으면 말씀해 주세요.

답글 내용:

데이터베이스에는 쇼핑몰 이름을 저장하는 컬럼 스토어가 있습니다. 이제 쇼핑몰은 Taobao로 하고 다른 쇼핑몰은 데이터 생성 시간을 기준으로 정렬하고 페이징이 필요합니다.
몇 가지 아이디어가 있습니다
MySQL은 필드별로 정렬하는 방법을 제공하지만 파일에는 데이터베이스에 이미 존재하는 모든 쇼핑몰 유형이 포함되어야 합니다. 그렇지 않으면 포함되지 않은 쇼핑몰 유형이 정렬을 방해하지만 매장 아래의 쇼핑몰(예: as Nichia, etc.) 등)이 계속 증가할 것이기 때문에 이 SQL 문도 계속해서 변경될 것입니다. 그래서 좋은 해결책이 있는지 묻고 싶었습니다.
둘째, 매장의 디지털 ID에 해당하는 필드를 추가하고 디지털 ID로 정렬합니다. 그러나 제품은 이제 Taobao와 Amazon이 1위를 원하지만 Chao Lingxi는 Nichia가 1위를 차지하기를 원합니다. 이 논리가 중단되지 않습니까?
좋은 계획이 있으면 말씀해 주세요.

이 질문에는 두 개의 필드가 필요합니다. 하나는 체중이고 다른 하나는 정렬입니다.
당신은 이렇게 생겼습니다

  1. 타오바오: 무게: 100 정렬: 1,

  2. Amazon: weith: 100 sort: 2,

  3. 니치아: 무게: 100 정렬: 3

  4. 기타: 무게: 1 종류: 1

  5. ...

SQL은 다음과 같이 작성해야 합니다. select * from table order by weight * sort 이렇게 하면 문제가 해결됩니다. 권한을 변경하려면 가중치를 조정하거나 정렬하면 됩니다

복잡한 논리적 정렬은 데이터베이스 수준에서 수행해서는 안 되며, 정렬 가능한 배열이나 맵과 같은 코드 수준에서 수행해야 합니다. JDK에는 정렬된 배열과 맵이 많이 있으므로 정렬 규칙을 직접 정의하세요.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.