Отображать записи определенного года в php mysql
У меня есть система, которая показывает записи по годам. У меня есть выпадающее меню, из которого пользователь выбирает год, и я сохраняю это значение в переменной $year
, Так что теперь, когда $year = 2013-2014
, он не должен отображать записи года 2014-2015. Кстати, когда я вставляю свой contractNumber, я также вставляю год, который пользователь выбрал во время входа в систему. например contractNumber = 1#2013-2014
,
Я пробовал это запросы:
SELECT * FROM contract WHERE contarctNumber RLIKE "^$year";
Теперь, когда я выбираю год 2014-2015, он по-прежнему отображает все записи 2013-2014 года.
Какие-либо предложения?
2 ответа
Попробуйте этот запрос
SELECT * FROM contract WHERE contarctNumber LIKE "%$year";
пример
CREATE TABLE test (contarctNumber varchar(25));
INSERT INTO test VALUES ('1#2013-2014'), ('1#2014-2015'), ('2#2014-2015');
Выберите запрос
SELECT * FROM test WHERE contarctNumber LIKE "%2014-2015";
Выход
| CONTARCTNUMBER |
------------------
| 1#2014-2015 |
| 2#2014-2015 |
Если contractNumber
всегда заканчиваться в диапазоне дат, почему бы не использовать:
SELECT * FROM contract WHERE contarctNumber LIKE "%$year";
Это означает, что он будет соответствовать чему угодно до $year
выбран, но все еще соответствует указанному диапазону.
Вариант № 2:
SELECT * from contract where RIGHT(contarctNumber, 9) = '$year';