반응형
MariaDB 10.3+ Left JOIN 및 사용자 정의 변수가 추가 행을 반환합니다.
MariaDB 10.0을 사용하면 다음 SQL 코드는 한 행만 반환합니다.
DROP TABLE IF EXISTS TestTable1;
CREATE TABLE `TestTable1` (
`SomeColumn` int(11) NOT NULL,
PRIMARY KEY (`SomeColumn`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO TestTable1 (`SomeColumn`) VALUES ('42');
SELECT * FROM TestTable1 LEFT JOIN (SELECT @p:=123 AS moo) pd ON TRUE;
# SomeColumn, moo
42, 123
그러나 MariaDB 10.3 및 10.4의 동일한 코드(불행히도 MariaDB 10.1 또는 10.2에 액세스할 수 없음)는 두 개의 행을 반환합니다.
# SomeColumn, moo
42, 123
42, 123
이는 사용자 정의 변수를 사용할 때만 발생합니다.예를 들어, 다음 코드는 예상대로 단일 행만 생성합니다.
DROP TABLE IF EXISTS TestTable1;
CREATE TABLE `TestTable1` (
`SomeColumn` int(11) NOT NULL,
PRIMARY KEY (`SomeColumn`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO TestTable1 (`SomeColumn`) VALUES ('42');
SELECT * FROM TestTable1 LEFT JOIN (SELECT 123 AS moo) pd ON TRUE;
우리는 이 동작에 따라 많은 코드를 가지고 있으며, 나의 목표는 MariaDB 10.3+가 '옛 방식'으로 행동하고 이 경우 한 행만 반환하도록 하는 것입니다.
NB: https://dbfiddle.uk/ 을 통해 손쉽게 직접 사용해 볼 수 있습니다.
NB2: 버그 리포트: https://jira.mariadb.org/browse/MDEV-22264
언급URL : https://stackoverflow.com/questions/61231364/mariadb-10-3-left-join-and-user-defined-variable-returns-extra-rows
반응형
'programing' 카테고리의 다른 글
임의 값으로 배열 만들기 (0) | 2023.10.09 |
---|---|
파이썬 스크립트를 벤치마킹하는 간단한 방법이 있습니까? (0) | 2023.10.09 |
git - 분기가 'Origin/Master'보다 1 커밋 앞에 있습니다. (0) | 2023.10.09 |
XML에서 스피너에 힌트를 추가하는 방법 (0) | 2023.10.09 |
유튜브 임베디드 코드의 유튜브 썸네일을 워드프레스의 특징 이미지로 설정하는 방법은? (0) | 2023.10.09 |