programing

Sql 문이 Maria DB와 Mysql에서 서로 다른 결과를 가져옵니다.

goodsources 2023. 8. 14. 22:49
반응형

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.24ID 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 |
+----+-------------------------+---------------------+------+------+------+------+------+------+---------------------+

제 질문은:

  1. 이 문제의 원인은 무엇입니까?
  2. 수정하는 방법Mysql 5.7.24?

언급URL : https://stackoverflow.com/questions/57588749/a-sql-statement-gets-different-results-on-maria-db-and-mysql

반응형