2016-04-12 22 views
0

検索された値の一部と一致するレコードを取得する必要があります。検索の一部と一致するレコードを取得するにはどうすればよいですか?

The EventsAttended column of the records.

説明:

画像の列は、上記の学生が出席したイベントIDを保持しています。 すべてのイベントに対応するIDがあります。 VBコードでは、Split()関数を使用して、EventsAttended列の値を区切り文字 "、"で区切って配列に格納します。私は必要なもの

私はつもりは私の検索の一部を照合することによって、レコードを取得するためにクエリを使用してい方法を知っておく必要があります。それは非常に長い値を持っていて、WHEREだけが正確な値を表すので、仕事をしません。しかし、私の場合は、例えば、77が含まれているので、0,6,8の行を返します。たとえば、144146を含むすべてのレコードが必要な場合は、行6と8だけが返されます。

ありがとうございます。

Select * From YourTable Where "," & [EventsAttended] & "," Like "*," & [EventID] & ",*" 

は非常に効果的でないので、@jmcilhinneyおよび再設計すること聞くん:

+5

私は、区切られたテキストを単一のフィールドに格納するのではなく、学生とイベントの組み合わせごとに1つのレコードを持つ別のテーブルを作成することをお勧めします。これで、あなたが今質問しているクエリが非常に簡単になります。このようなデータを1つの分野に詰め込んだのは偽の経済です。 – jmcilhinney

+0

ありがとうございます。私はちょうど仕事をした目的のためにそれをちょうど好きだった。しかし、あなたは正しいよ私は同じことを私が私がそれをやり遂げる方法を考え出しているときに考えていました。仕事をしてもこのアイデアは出てきましたが、あなたが言ったように理想的ではありませんでしたが、 1つは今のところです。 :) – BillyD

答えて

1
あなたがように使用することができます

.... あなたは '77' はあなたが使用することができます

select * 
from my table 
where EventsAttended like ('77,%') 
    or EventsAttended like ('%,77,%') 
    or EventsAttended like (',77%') ; 
+0

ありがとう、私は家に帰るとすぐにこれを試してくれます。 – BillyD

+0

最後の行は 'または( '%、77')'のようなEventsAttendedでなければなりません。 – jmcilhinney

+0

ありがとう@jmcilhinneyと_scaisEdge_、それはちょうど私が魅力のようにそれを望んでいた方法で動作します!どうもありがとうございます。 – BillyD

1

を試しSERCHをしたいと仮定すると、これはゼロから。

+0

ありがとうございます。後で試してみます。はい、この区切られたテキストフィールドに依存する私のコードのほぼ80%を再構築しますが、システムを再設計します。 – BillyD

関連する問題