반응형
MySQL에서 고정 목록으로 항목을 주문하시겠습니까?
랜덤화 스텝이 있기 때문에 쿼리를 실행할 때까지 알 수 없는 주문품목 목록을 확정합니다.
다음과 같은 것을 원합니다.
라고 가정합니다.is_launch_set
1, 3, 7, 11이 반환되지만 다음과 같이 랜덤화되었습니다.
SELECT * FROM items WHERE is_launch_set=1 ORDER BY id values (3,11,7,1);
어떻게 해야 할지 생각나는 거 없어요?내 생각엔...find_in_set
잘 모르겠어요.
다음 중 하나를 사용하여 이 작업을 수행할 수 있습니다.
ORDER BY FIND_IN_SET(id, '3,11,7,1')
또는
ORDER BY FIELD(id, 3, 11, 7, 1)
또는
ORDER BY CASE id WHEN 3 THEN 0
WHEN 11 THEN 1
WHEN 7 THEN 2
WHEN 1 THEN 3
ELSE 4
END
mys sql 8.0에서는 첫 번째 열(이 경우 3)로만 순서가 매겨집니다.
ORDER BY FIND_IN_SET(id, '3,11,7,1')
이 예에서는 효과가 있었지만, 위로는 효과가 있었습니다.마지막 3개, 마지막 11개, 7개 등입니다.
ORDER BY FIELD(id, 3, 11, 7, 1)
이 예를 선택한 경우 1이 먼저 표시되고 7, 11 등이 표시됩니다.
ORDER BY FIELD(id, 3, 11, 7, 1) DESC
언급URL : https://stackoverflow.com/questions/10940402/order-items-in-mysql-by-a-fixed-list
반응형
'programing' 카테고리의 다른 글
Larabel 이행: "외부 키 제약 조건이 잘못 형성되었습니다." (errno 150) (0) | 2022.09.29 |
---|---|
목록에서 줄임표 [...]는 무엇을 의미합니까? (0) | 2022.09.29 |
날짜 범위에서 매일 행을 생성하시겠습니까? (0) | 2022.09.29 |
MySQL에서 어레이 변수를 시뮬레이트하려면 어떻게 해야 합니까? (0) | 2022.09.29 |
IntelliJ IDEA 커뮤니티 에디션을 사용하여 스프링 부트 애플리케이션을 디버깅하는 방법 (0) | 2022.09.29 |