0

私は現在、特定のものを実装する方法に少し困惑しています。基本的に、組み込みデータベース (パフォーマンスの観点から JOIN を本当に嫌う) と、検索フィールドにワイルドカード メカニズムを追加する必要があります。現在、検索フィールドでは、ユーザーは日付と、次のようなものを使用して一致するいくつかの金額/収益を入力できます。 SELECT * FROM table where date >= '{0}' AND date <= '{1}'

編集:これは、.NET アダプターが実行時に SQL を生成し、AND 句のさまざまな組み合わせが可能であるためです。ユーザーは {0} の値のみを入力するか、{1} の値を 1 つだけ入力するか、両方を入力するか、何も入力しない可能性があります。したがって、深刻な正規表現を開始しない限り、残念ながら BETWEEN は横ばいになります。

キーワード LIKE を使用して、次のようなものを実装したいと思います。

SELECT * FROM table where date >= LIKE '{0}' AND date <= LIKE '{1}'{0}ようなもので"2015.01*"

日付は少し多いかもしれませんが、金額や収益などを使用することは可能ですか? もしそうなら、正しい構文は何ですか? Google は私の友人ではありません...

事前にご協力いただきありがとうございます。

4

1 に答える 1

3

LIKEは正規表現マッチングを行っているため、たとえばLIKE '%a'「1a」だけでなく「2a」にも一致します。>= LIKE '...'このことから、aが不可能であることは明らかです。

あなたができることは、日付から文字列を作成することLIKE 'YYYYMM%'です>= 'YYYYMM'.

それでも、あなたがすでに提案したSELECT * FROM table where date >= '{0}' AND date <= '{1}'(または を使用したそのクエリの変形) を使用しない理由がわかりません。between

于 2015-06-11T15:21:57.887 に答える