MySQL에서 우선 순위에 따라 행을 선택하고 싶습니다. 나는 가능하면 알고 있지만, 아래의 예를 참조하지 않습니다MySQL의 우선 순위
id name
1 John
2 Doe
3 Mary
4 Jhonny
내가 ID를 모르는 가정하면,하지만 구체적인 이유에 의해, 나는 우선 순위에 따라 선택해야합니다 : 3, 2, 1 ...이 경우 메리가 선택됩니다 (# 3). 하지만 5, 2, 1 순서로 선택해야한다면 DOE가 선택 될 것입니다 (# 2).
좋아요, IN (5, 2, 1)을 사용하면됩니다. 문제는 (IN (5, 6, 7)과 같은) 결과가 없으면 적어도 하나의 행이 필요하다는 것입니다.
예를 들어, 5, 6, 7을 선택하십시오. 아무 것도 발견되지 않은 경우 ... 처음 발견 된 항목 (예 : JOHN)을 선택하십시오.
가능합니까?
안녕!
편집 : 방금이 해결책을 생각했지만 얼마나 빨리해야할지 모르지만 잘 작동합니다. 아무도 잃을 수없는 벤치 마크가 더 좋은 응답을 수락하십시오. 분명히
SELECT 5 as ID, 1 as ord
UNION ALL SELECT 2 , 2
UNION ALL SELECT 1 , 3
인가 : 처음에는
ORDER BY FIND_IN_SET(`id`, '5,6,7') DESC
우선 순위는'2, 4, 1, 3'과 같을 수 있으며 결과로 Doe를 생성 할 수 있습니까? 아니면'조니 (Jhonny) '가 받아 들일만한 결과일까요? –
우선 순위에 맞지 않는 경우 모든 행이 사용될 수 있습니다. –