2016-04-12 105 views
0

我需要检索匹配搜索值的一部分的记录。如何检索与部分搜索匹配的记录?

The EventsAttended column of the records.

说明:

图像中列上认为,学生参加了此次活动的ID。 所有事件都有相应的ID。在我的VB代码中,我使用Split()函数将EventsAttended列值与分隔符“,”分开,并将它们放入数组中。

我需要

我需要知道我是如何要去使用查询通过匹配我的搜索的一部分来检索的记录。它具有很长的价值,单靠一个人就不会完成这项工作,因为它代表了确切的价值。但就我而言,例如,我想要所有包含77的记录,因此它将返回行0,6和8,因为它们具有77。例如,假设我想要包含144146的所有记录,因此它将仅返回第6和第8行。

预先感谢您。

+5

我建议不要将该分隔文本存储在单个字段中,而是创建另一个表,每个学生和事件的组合都有一个记录。这将使您现在要求的查询非常简单。这是一种虚假的经济,将这种数据压缩到一个领域。 – jmcilhinney

+0

谢谢你的建议。我就是这样做的,因为这样做的目的很好。但是,你说得对,当我想清楚我将如何做时,我想到的是同样的事情,虽然它做了这项工作,但我认为这个想法出来了,但就像你说的那样不理想,但我会坚持这一点一个现在。 :) – BillyD

回答

1

您可以使用像.... 假设你想serch主页 '77' 试图

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

非常感谢你,等我回家后我会试试这个。 – BillyD

+0

最后一行应该是'或EventsAttended('%,77')'。 – jmcilhinney

+0

谢谢@ jmcilhinney和_scaisEdge_,它的工作原理就是我想让它像魅力一样!非常感谢。 – BillyD

1

您可以使用:

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

非常无效,所以不要听@jmcilhinney和重新设计这从头开始。

+0

谢谢我以后会尝试这个。是的,我会重新设计我的系统,但我会重建几乎80%的依赖此分隔文本字段的代码。 – BillyD