source

MySQL에서 마리아DB의 순서가 잘못되었지만 수정되었습니다.

goodcode 2023. 1. 9. 21:41
반응형

MySQL에서 마리아DB의 순서가 잘못되었지만 수정되었습니다.

MySQL: 5.6.17을 로컬서버에, 5.5.45-MariaDB-log를 실가동서버에 인스톨 하고 있습니다. 바이올린을 켜면 결과셋은 로컬 서버(mysql 5.5 및 5.6)에서 올바르게 주문되지만 mariadb에서는 운영되지 않습니다.아래 이미지를 참조하십시오.왜 그런지 아세요? 마리애드비 벌레인가요?

마리아답의 잘못된 순서

> SELECT NULLIF('2015-11-19 15:08:22', 0);
+----------------------------------+
| NULLIF('2015-11-19 15:08:22', 0) |
+----------------------------------+
| 2015-11-19 15:08:22              |
+----------------------------------+
1 row in set, 1 warning (0.00 sec)

> SHOW WARNINGS;
+---------+------+---------------------------------------------------------+
| Level   | Code | Message                                                 |
+---------+------+---------------------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: '2015-11-19 15:08:22' |
+---------+------+---------------------------------------------------------+
1 row in set (0.00 sec)

> SELECT NULLIF('2015-11-19 15:08:22', '0000-00-00 00:00:00');
+------------------------------------------------------+
| NULLIF('2015-11-19 15:08:22', '0000-00-00 00:00:00') |
+------------------------------------------------------+
| 2015-11-19 15:08:22                                  |
+------------------------------------------------------+
1 row in set (0.00 sec)

시험:

SELECT
   e.id,
   e.dt_competition_last_manual_check,
   MAX(ec.dt_created) as m,
   # GREATEST always return NULL if present among arguments
   NULLIF(
      GREATEST(
         COALESCE(MAX(ec.dt_created), '0000-00-00 00:00:00'),
         COALESCE(e.dt_competition_last_manual_check, '0000-00-00 00:00:00')
      )
   , '0000-00-00 00:00:00') AS most_recent_dt_created_or_checked
FROM `estates` AS `e` 
   LEFT JOIN `estates` AS `ec` ON e.id = ec.estates_id_duplicate 
WHERE e.server = 'esk' 
GROUP BY `e`.`id` 
ORDER BY most_recent_dt_created_or_checked DESC;

언급URL : https://stackoverflow.com/questions/34105330/mariadb-wrong-order-but-correct-in-mysql

반응형