반응형
Maria의 관련 서브쿼리에서 DateTimes 잘라내기DB
그룹별 최대 쿼리 중 하나가 예기치 않은 결과를 반환하는 것이었습니다.나는 그것을 다음과 같은 문제로 요약했다.
DROP TABLE IF EXISTS maria_bug;
CREATE TABLE maria_bug (
id INT NOT NULL,
update_time TIMESTAMP(6) NOT NULL
);
INSERT INTO maria_bug VALUES(1, '2001-01-01 00:00:00.200000');
INSERT INTO maria_bug VALUES(1, '2001-01-01 00:00:00.100000');
SELECT
m1.id,
m1.update_time t1,
(SELECT MAX(m2.update_time) FROM maria_bug m2 WHERE m1.id = m2.id) t2
FROM maria_bug m1;
MySQL 5.6에서는 다음과 같이 표시됩니다.
1 2001-01-01 00:00:00.200000 2001-01-01 00:00:00.200000
1 2001-01-01 00:00:00.100000 2001-01-01 00:00:00.200000
MariaDB(10.0.13)의 경우:
1 2001-01-01 00:00:00.200000 2001-01-01 00:00:00.200000
1 2001-01-01 00:00:00.100000 2001-01-01 00:00:00.000000
왜 이런 일이 일어나는 거죠?MYSQL 동작은 예상대로입니다.MariaDB 어딘가에 없는 설정이 있습니까?어디 기록돼 있는 건가요?이것은 매우 일반적인 쿼리이므로 데이터베이스의 버그일 수는 없습니다.
SELECT COUNT(*) FROM maria_bug m1
WHERE update_time < (SELECT MAX(m2.update_time) FROM maria_bug m2 WHERE m1.id = m2.id)
위의 쿼리는 반환됩니다.1예상대로 MYSQL에 있지만0MariaDB에 있습니다.
반환되는 데이터가 테이블의 데이터와 다르기 때문에 이것은 MariaDB의 버그인 것 같습니다.
mysql> SELECT *, (SELECT MAX(m2.update_time) FROM maria_bug m2 WHERE m1.id <> 0 ) max_update FROM maria_bug m1;
+----+----------------------------+----------------------------+
| id | update_time | max_update |
+----+----------------------------+----------------------------+
| 1 | 2001-01-01 00:00:00.200000 | 2001-01-01 00:00:00.200000 |
| 1 | 2001-01-01 00:00:00.100000 | 2001-01-01 00:00:00.000000 |
+----+----------------------------+----------------------------+
2 rows in set (0.00 sec)
버그는 MariaDB: https://jira.mariadb.org/browse/MDEV-9707로 제출됩니다.
업데이트: 이 버그는 MariaDB에 의해 확인되었습니다.
언급URL : https://stackoverflow.com/questions/35907735/truncation-of-datetimes-in-correlated-subqueries-in-mariadb
반응형
'programing' 카테고리의 다른 글
| JavaScript 개체는 어떻게 값 자체를 참조할 수 있습니까? (0) | 2023.01.27 |
|---|---|
| 조건에 따라 다른 테이블의 열로 열 값 업데이트 (0) | 2023.01.27 |
| CONCAT 문자열이 추가된 필드의 모든 값이 작동하지 않음 (0) | 2023.01.27 |
| JavaScript 코드에서 데이터 속성 값을 얻으려면 어떻게 해야 합니까? (0) | 2023.01.27 |
| Python 3의 멀티 프로세싱과 멀티스레딩의 비동기화 (0) | 2023.01.27 |