Если в ваших строках даты всегда есть ровно три даты, то должно работать следующее:
SELECT
LEAST(SUBSTRING_INDEX(dates, ',', 1),
SUBSTRING_INDEX(SUBSTRING_INDEX(dates, ',', -2), ',', 1),
SUBSTRING_INDEX(dates, ',', -1)) AS least_date
FROM yourTable;
2018-04-16
Демо
Однако , ваша текущая таблица имеет очень плохой дизайн, если вы храните даты в виде строк CSV.Вместо этого вы должны хранить каждую дату в отдельной записи.Затем вы можете легко использовать функцию MIN
, возможно, с GROUP BY
, чтобы получить нужный ответ.