programing

하위 쿼리 결과에서 LIMIT 값 가져오기

iphone6s 2023. 10. 9. 22:23
반응형

하위 쿼리 결과에서 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;

다른 게시물의 sql 쿼리 원본

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)

dbfiddle 데모

언급URL : https://stackoverflow.com/questions/71741869/get-limit-value-from-subquery-result

반응형