#sql #mariadb-10.4
Вопрос:
У меня есть эти данные:
"config_timeslice_id","config_id","created"
14326,1145,"2021-08-31 13:45:00"
14325,1145,"2021-08-22 13:34:51"
14321,1145,"2021-06-16 10:47:59"
2357,942,"2019-12-24 10:09:38"
Когда я выполняю этот запрос:
SELECT config_timeslice_id
FROM config_timeslice
WHERE config_id = 1145
AND created <= CURRENT_TIMESTAMP
ORDER BY created DESC
LIMIT 1
Я получаю 14325, как и следовало ожидать, потому что сегодня 2021-08-23.
Но когда я выполняю этот запрос:
SELECT DISTINCT t.config_id,
(
SELECT config_timeslice_id
FROM config_timeslice
WHERE config_id = t.config_id
AND created <= CURRENT_TIMESTAMP
ORDER BY created DESC
LIMIT 1
) AS ts_id
FROM config_timeslice t
Я получаю:
config_id,ts_id
942,2357
1145,14321
Я не могу понять, почему вторая строка не дает 14325
Комментарии:
1. Возможно, потому
CURRENT_TIMESTAMP
, что изменилось между двумя запусками запроса.2. Код отлично работает для меня: dbfiddle.uk/…
3. @forpas — Спасибо! В MariaDB 10.4.18 должна быть ошибка. Когда я обновился до 10.4.21, который использует dbfiddle, он работает.
Ответ №1:
В MariaDB 10.4.18 должна быть ошибка. Когда я обновился до 10.4.21, это работает.