MySQL: консультировать дату в поле varchar

Я queriendo искать дату внутри поля MySQL, которое содержит несколько дат, отделенных запятыми. Пример:

tabla_agenda: id (integer) fechas (text o varchar)

Пример таблицы:

registro: 1 / 2017-04-04,2017-04-06,2017-04-08
registro: 2 / 2017-04-08,2017-05-08,2017-06-08

Консультация, которую я хочу реализовать, - select * from tabla_agenda where '2017-04-08' in (fechas)

Но он не дает мне никакого результата. Если я оставляю одиноким дату, он это находит хорошо, не принимает во внимание расставание запятых как набор. Я протестировал простые кавычки, двойные кавычки как в критерии, так и в реестрах

Какая-то идея?

0
задан 04.04.2017, 02:04
1 ответ

Если, как ты говоришь, имеешь колонну (VARCHAR или TEXT) со списком дат по отношению к способу:

2017-04-04,2017-04-06,2017-04-08

И, ввиду даты, ты хочешь узнать в quГ© линии таблицы, находится вышеупомянутая дата, ты можешь делать это с одним LIKE.

SELECT * 
FROM tabla_agenda
WHERE fechas LIKE '%2017-04-08%';

Эта консультация ты traerГЎ линии, в которых находится дата 2017-04-08, потому что то, что есть в твоей колонне, не другая вещь, чем цепь.

PD

Я Соглашаюсь с комментарий @sstan в твоем вопросе. Очень вероятно, что твоей таблицы нуждается в том, чтобы быть , нормализованные . Это не нормально ни prГЎctico сохранять даты в списке, использовать как таковой (для cГЎlculos, estadГ-sticas или другие) resultarГЎ достаточно комплекс и подвержено многим ошибкам difГ-ciles контролирования.

1
ответ дан 24.11.2019, 10:12