반응형
Sql 문이 Maria DB와 Mysql에서 서로 다른 결과를 가져옵니다.
테이블 구조:
+---------------+-------------+----------------+-----------+--------------------------+
| column_name | is_nullable | column_default | data_type | character_maximum_length |
+---------------+-------------+----------------+-----------+--------------------------+
| id | NO | NULL | int | NULL |
| name | NO | NULL | varchar | 100 |
| last_start | YES | NULL | datetime | NULL |
| y | YES | NULL | varchar | 4 |
| m | YES | NULL | varchar | 2 |
| d | YES | NULL | varchar | 2 |
| h | YES | NULL | varchar | 2 |
| i | YES | NULL | varchar | 2 |
| s | YES | NULL | varchar | 2 |
+---------------+-------------+----------------+-----------+--------------------------+
표의 데이터:
+----+-------------------------+---------------------+------+------+------+------+------+------+
| id | name | last_start | y | m | d | h | i | s |
+----+-------------------------+---------------------+------+------+------+------+------+------+
| 55 | daemon_service_service | 2019-08-21 11:05:59 | NULL | NULL | NULL | NULL | NULL | NULL |
| 56 | daemon_ohrclean_service | 2019-08-21 10:47:59 | NULL | NULL | NULL | 05 | 00 | 00 |
| 57 | daemon_mqclean_service | 2019-08-21 10:47:59 | NULL | NULL | NULL | NULL | NULL | NULL |
| 58 | daemon_loggrab_service | 2019-08-21 10:59:59 | NULL | NULL | NULL | NULL | NULL | NULL |
| 59 | daemon_test1 | 2019-08-20 12:26:31 | NULL | NULL | 20 | 11 | 25 | 30 |
| 60 | daemon_test2 | 2019-08-20 12:26:31 | NULL | NULL | 20 | 11 | 25 | 30 |
| 61 | daemon_test3 | 2019-08-20 12:26:31 | NULL | NULL | 20 | 11 | 25 | NULL |
+----+-------------------------+---------------------+------+------+------+------+------+------+
SQL 문은 다음과 같습니다.
SELECT t.*, concat(ifnull(`y`,date_format(now(),'%Y')),'-',
ifnull(`m`,date_format(now(),'%m')),'-',
ifnull(`d`,date_format(now(),'%d')),' ',
ifnull(`h`,date_format(now(),'%H')),':',
ifnull(`i`,date_format(now(),'%i')),':',`s`)
FROM `daemon_service` t
where
`s` is not null and
last_start< concat(ifnull(`y`,date_format(now(),'%Y')),'-',
ifnull(`m`,date_format(now(),'%m')),'-',
ifnull(`d`,date_format(now(),'%d')),' ',
ifnull(`h`,date_format(now(),'%H')),':',
ifnull(`i`,date_format(now(),'%i')),':',`s`)
두 개의 SQL 환경이 있습니다. 하나는MariaDB 10.3.15
다른 하나는Mysql 5.7.24
.
위의 SQL을 실행하면MariaDB 10.3.15
,결과는 정확하지만, 아무것도 아닙니다.
하지만 SQL을 실행할 때Mysql 5.7.24
ID 59와 60을 반환합니다. 이것은 정확하지 않습니다.
결과는 다음과 같습니다.
+----+-------------------------+---------------------+------+------+------+------+------+------+---------------------+
| id | name | last_start | y | m | d | h | i | s | concat(ifnull(`y`...|
+----+-------------------------+---------------------+------+------+------+------+------+------+---------------------+
| 59 | daemon_test1 | 2019-08-20 12:26:31 | NULL | NULL | 20 | 11 | 25 | 30 | 2019-08-20 11:25:30 |
| 60 | daemon_test2 | 2019-08-20 12:26:31 | NULL | NULL | 20 | 11 | 25 | 30 | 2019-08-20 11:25:30 |
+----+-------------------------+---------------------+------+------+------+------+------+------+---------------------+
제 질문은:
- 이 문제의 원인은 무엇입니까?
- 수정하는 방법
Mysql 5.7.24
?
언급URL : https://stackoverflow.com/questions/57588749/a-sql-statement-gets-different-results-on-maria-db-and-mysql
반응형
'programing' 카테고리의 다른 글
$(이)와 event.target의 차이는 무엇입니까? (0) | 2023.08.14 |
---|---|
SQL: 특정 날짜에 대한 시간 범위에서 작성된 레코드 가져오기 (0) | 2023.08.14 |
swift를 사용하여 .svg 이미지를 표시하는 방법 (0) | 2023.08.14 |
마지막으로 Git에 밀어넣은 것을 롤백할 방법이 있습니까? (0) | 2023.08.14 |
업데이트 모듈에서 리포지토리를 찾을 수 없음 (0) | 2023.08.14 |