Запрос диапазона MySQL с помощью LIKE

у меня есть ref поле в моей таблице MySQL, которое содержит значения, которые выглядят как «0-0-at-3267-201411041356». Первая часть (0-0-at-3267-) отличается по длине и значениям, а вторая часть (201411041356) представляет собой дату / время, которое ссылается на дату / время создания. Все, для чего используется этот код, проверяется, чтобы увидеть, попадает ли он в определенный период даты / времени, например между 201409010000 и 201508312359.

Обычно я могу просто взорвать данные и затем измерять, но для этого случая это сделало бы это слишком неуклюжим. Так что я хочу сделать, это использовать LIKE функция в моем запросе так LIKE '%201411041356' но я хочу использовать его с > а также < символы, поэтому полный запрос выглядит примерно так SELECT * FROM my_table WHERE ref LIKE > '%201409010000' AND ref LIKE < '%201508312359'

Любые идеи будут приветствоваться! Кстати, это всегда был способ хранения этих данных, и их много, поэтому изменять их нельзя.

0

Решение

Не могли бы вы использовать между на подстроке, так что-то вроде:

SELECT * FROM my_table WHERE SUBSTRING(ref,-12) BETWEEN '201409010000' AND '201508312359'
0

Другие решения

SELECT *
FROM my_table
WHERE SUBSTRING(ref,-12) BETWEEN '201409010000' AND '201508312359'`

будет лучше для вычитания последних 12 символов.

0

Потому что вы написали, что первая часть может иметь разную длину, поэтому у вас есть подстрока полосы, начиная с конца.

Таким образом, ваш запрос может выглядеть так:

SELECT * FROM table
WHERE
SUBSTRING('ref', -12) > $from
AND
SUBSTRING('ref', -12) < $to
0

Если вы просто хотите измерить по дате использования:

left(right(ref, 12), 8)
0
По вопросам рекламы [email protected]