我有一个显示年度记录的系统。我有用户选择年份的下拉菜单,我将该值存储在变量$year
中。所以现在$year = 2013-2014
,它不应该显示2014-2015年的记录。顺便说一下,当我插入我的contractNumber时,我也会插入用户在登录期间选择的年份。例如contractNumber = 1#2013-2014
。
我尝试了这个查询:
SELECT * FROM contract WHERE contarctNumber RLIKE "^$year";
现在,当我选择2014 - 2015年时,它仍会显示2013-2014年的所有记录。
有什么建议吗?
答案 0 :(得分:1)
尝试此查询
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 |
答案 1 :(得分:0)
如果contractNumber
始终在日期范围内结束,为什么不使用:
SELECT * FROM contract WHERE contarctNumber LIKE "%$year";
这意味着它将匹配所选$year
之前的任何内容,但仍与指定范围匹配。
选项#2:
SELECT * from contract where RIGHT(contarctNumber, 9) = '$year';