-2

年間の記録を表示するシステムがあります。ユーザーが年を選択するドロップダウン メニューがあり、その値を variable に格納しています$year。その$year = 2013-2014ため、2014 年から 2015 年のレコードは表示されません。ところで、contractNumber を挿入すると、ログイン時にユーザーが選択した年も挿入されます。例えば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 に答える