c# winform にマスクされたテキスト ボックスがあります。
マスキングは次のようになります
- (two numbers on the front and 4 number on the right after the dash).
for ex: 12-3456
のようなより多くの順列があります
- (3 spaces on the front and 5 on the right)
for ex: 123-34567
ユーザーが 123-34567 と入力すると、select sql クエリは
123-34567
ユーザーが 12-3456 と入力すると、select sql クエリは
12-3456
ユーザーが「-」と入力すると、select sql クエリはのみを返す必要があります
12-3456 (つまり、2 つのスペースを入力)
ユーザーが「-」と入力すると、select sql クエリはのみを返す必要があります
123-34567 (つまり、3 つのスペースを入力)
つまり、ユーザーは何も入力せずに検索でき、マスクのみを有効にしたテキスト ボックスと検索 (空 - 空) - ダッシュ マスクのみ、マスクに数字を入力して検索します (例: 12- )。
使用しているクエリは
select column1,column2 from table1 where column2 like '%__-%';
(アンダースコアは動的に計算されます)そして、他の最適なアプローチでこれを取得するにはどうすればよいですか(たとえば、単一のクエリのように)?
この table1 と、データベースに列 "MaskedInfo" があるとします。
Table1:
MaskedInfo
1234567
12-34567
123-4567
123-45678
ユーザーは、12-34567 または 123-4567 または単に 1234567 のように検索するものを入力できます。テキスト ボックスが空の場合は、結果のすべてを読み込みます。