在php mysql中显示特定年份的记录

时间:2013-04-06 07:47:36

标签: php mysql select-query

我有一个显示年度记录的系统。我有用户选择年份的下拉菜单,我将该值存储在变量$year中。所以现在$year = 2013-2014,它不应该显示2014-2015年的记录。顺便说一下,当我插入我的contractNumber时,我也会插入用户在登录期间选择的年份。例如contractNumber = 1#2013-2014

我尝试了这个查询:

SELECT * FROM contract WHERE contarctNumber RLIKE "^$year";

现在,当我选择2014 - 2015年时,它仍会显示2013-2014年的所有记录。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

尝试此查询

SELECT * FROM contract WHERE contarctNumber LIKE "%$year";

SQLFiddle DEMO

示例

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 |

答案 1 :(得分:0)

如果contractNumber始终在日期范围内结束,为什么不使用:

SELECT * FROM contract WHERE contarctNumber LIKE "%$year";

这意味着它将匹配所选$year之前的任何内容,但仍与指定范围匹配。

选项#2:

SELECT * from contract where RIGHT(contarctNumber, 9) = '$year';