-2

我有一个系统可以按年显示记录。我有用户从中选择年份的下拉菜单,并且我将该值存储在变量中$year。所以现在 when $year = 2013-2014,它不应该显示 2014-2015 年的记录。顺便说一句,当我插入我的合同编号时,我还插入了用户在登录期间选择的年份。例如contractNumber = 1#2013-2014

我试过这个查询:

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

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

有什么建议么?

4

2 回答 2

1

试试这个查询

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

SQLFiddle 演示

例子

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 |
于 2013-04-06T07:51:57.793 回答
0

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

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

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

选项#2:

SELECT * from contract where RIGHT(contarctNumber, 9) = '$year';
于 2013-04-06T07:52:22.570 回答