반응형
하위 쿼리 결과에서 LIMIT 값 가져오기
쿼리에 LIMIT 옵션을 사용하고 싶은데 예상 행 수가 다른 테이블에 저장되어 있습니다.이것이 제가 가지고 있는 것입니다만, 작동이 안 됩니다.
select * from table1 limit (select limitvalue from table2 where id = 1)
서브쿼리만 실행하면 결과는 역시 6입니다.
가능하면 WITH 문으로 작업하는 것을 선호하지만, 더 이상 효과가 없었습니다.미리 감사드립니다!
limit 절은 상수가 아닌 변수를 매개 변수로 허용하지 않으므로 준비된 문을 사용하여 다른 테이블에서 쿼리의 제한을 가져올 수 있습니다.
PREPARE firstQuery FROM "SELECT * FROM table1 LIMIT ?";
SET @limit = (select limitvalue from table2 where id = 1);
EXECUTE firstQuery USING @limit;
CTE에서 MariaDB의 함수를 사용하여 출력할 행을 셀 수 있습니다.limitvalue. 예를 들어,
WITH rownums AS (
SELECT *,
ROW_NUMBER() OVER () AS rn
FROM table1
)
SELECT *
FROM rownums
WHERE rn <= (SELECT limitvalue FROM table2 WHERE id = 1)
노트 사용LIMIT없이.ORDER BY매번 동일한 결과를 제공한다는 보장은 없습니다.당신은 다음을 포함해야 합니다.ORDER BY의 조항OVER의 일부ROW_NUMBER창 기능데모의 샘플 데이터를 사용하면 다음과 같은 것을 사용할 수 있습니다.
ROW_NUMBER() OVER (ORDER BY mark DESC)
언급URL : https://stackoverflow.com/questions/71741869/get-limit-value-from-subquery-result
반응형
'programing' 카테고리의 다른 글
| 유휴 mysql 연결을 종료하는 중 (0) | 2023.10.09 |
|---|---|
| 내부 텍스트 vs 내부 텍스트HTML vs 레이블 vs 텍스트 vs 텍스트내용 vs 외부 텍스트 (0) | 2023.10.09 |
| C#에서 JSON을 XML로 변환하거나 XML을 JSON으로 변환하는 방법은? (0) | 2023.10.09 |
| applicationContext를 여러 파일로 분할하는 중 (0) | 2023.10.09 |
| 단일 그룹 그룹 함수가 아님 (0) | 2023.10.09 |