반응형
ID 목록에 대한 여러 개의 주변 행 포함(ID순)
테이블에서 ID 목록과 일치하는 모든 행을 선택합니다(앞의 두 행과 뒤의 두 행 포함).아이디순으로주문했습니다.
ID | Value
---+----------
1 | Value #1
2 | Value #2
3 | Value #3
4 | Value #4
5 | Value #5
6 | Value #6
7 | Value #7
8 | Value #8
9 | Value #9
10 | Value #10
11 | Value #11
12 | Value #12
13 | Value #13
14 | Value #14
17 | Value #17
19 | Value #19
20 | Value #20
28 | Value #28
29 | Value #29
30 | Value #30
이제 질문이 있습니다.
SELECT `ID`, `Value` FROM `table` WHERE `ID` in (5, 14) ORDER BY `ID`;
ID 3, 4, 6, 7, 12, 13, 17, 19도 반납하려면 어떻게 연장해야 합니까?정확한 신원은 모릅니다테이블에 틈이 있을 수 있습니다.5가 일치하지 않는 경우 3, 4, 6, 7보다 큰 값은 반환되지 않습니다.
저는 이미 "주변 행"과 관련된 다른 모든 질문을 읽었습니다.그러나 이들은 모두 주변 행을 포함해야 하는 하나의 결과를 처리하고 있습니다.
다음 쿼리를 사용할 수 있습니다.
SELECT ID, Value
FROM (
SELECT ID, Value,
@rn1 := @rn1 + 1 AS rn
FROM mytable
CROSS JOIN (SELECT @rn1 := 0) AS v
ORDER BY ID) AS t1
JOIN (
SELECT rn
FROM (
SELECT ID, Value,
@rn := @rn + 1 AS rn
FROM mytable
CROSS JOIN (SELECT @rn := 0) AS v
ORDER BY ID) AS t
WHERE t.ID IN (5, 14)
) AS t2 ON t1.rn BETWEEN t2.rn - 2 AND t2.rn + 2
위 쿼리는 변수를 두 번 사용합니다. 한 번은 각 레코드에 행 번호를 할당하고 두 번째는 주변 레코드를 필터링하기 위해 사용합니다.
언급URL : https://stackoverflow.com/questions/39464112/include-multiple-surrounding-rows-for-a-list-of-ids-ordered-by-id
반응형
'programing' 카테고리의 다른 글
Rails/MariaDB 백엔드에서 직렬화된 데이터를 업데이트하려면 어떻게 해야 합니까? (0) | 2023.09.04 |
---|---|
데이터를 제출하지 않는 사용 불가능한 양식 필드 (0) | 2023.09.04 |
phpMyAdmin을 사용하여 기본 빈 공간이 있는 Null 값 필드에 대한 ods 파일을 가져오는 방법 (0) | 2023.09.04 |
PowerShell 및 프로세스 종료 코드 (0) | 2023.08.30 |
스프링 부트 정상 종료 (0) | 2023.08.30 |