반응형
UNION과 LIMIT를 조합하여 사용할 경우 MariaDB의 이상한 동작
SELECT `foo`
FROM `table`
WHERE `bar` = 'def'
LIMIT 1500;
... 조건(def)에 대해 1500개의 행을 반환합니다.
(SELECT `foo`
FROM `table`
WHERE `bar` = 'abc'
LIMIT 1000)
UNION
(SELECT `foo`
FROM `table`
WHERE `bar` = 'def'
LIMIT 1500)
... 2498 행을 반환하고 두 번째 조건(def)에 대해 1498 행을 반환합니다.
첫 번째 쿼리의 출력에서 알 수 있듯이 조건 "def"가 1500 행을 반환하기에 충분한 레코드가 분명히 있습니다.그럼에도 불구하고 UNION과 함께 사용할 경우 해당 조건에 대해 반환되는 레코드가 너무 적습니다.
이 행동을 추적할 수 있는 포인터를 가지고 있는 사람이 있습니까?
UNION이 고유한 결과만 선택하므로 행 수를 줄일 수 있습니다.그러나 UNION ALL을 사용하여 모든 결과 양식을 가져올 수 있습니다. 두 개의 선택 항목이 모두 포함되어 있고 동일한 값을 가진 행도 있습니다.
(SELECT `foo`
FROM `table`
WHERE `bar` = 'abc'
LIMIT 1000)
UNION ALL
(SELECT `foo`
FROM `table`
WHERE `bar` = 'def'
LIMIT 1500)
언급URL : https://stackoverflow.com/questions/43798219/strange-behaviour-of-mariadb-when-using-limit-in-combination-with-union
반응형
'programing' 카테고리의 다른 글
Python의 bz2 모듈은 기본적으로 컴파일되지 않습니다. (0) | 2023.09.18 |
---|---|
범위 클래스의 CopyPicture 메서드에 실패했습니다. (0) | 2023.09.18 |
XML에서 한 줄을 주석으로 달려면 어떻게 해야 합니까? (0) | 2023.09.18 |
요구사항을 사용하는 방법JS와 jQuery가 같이? (0) | 2023.09.18 |
Node.js 0.12에서 사용 가능한 ECMAscript 6 기능 (0) | 2023.09.18 |