使用逗号分隔值搜索列

时间:2011-12-30 12:20:04

标签: asp.net sql sql-server full-text-search freetext

我有SQL server 2008 r2版本,正在开发,.Net网页作为前端。

出现问题,数据库中有一列基本上由逗号分隔的各种技能组成。例如,一些候选人具有3种不同的技能组,即C#SQL serverOracle。想要列出具有C#Oracle技能的候选人的用户将在网页上的文本框中提供输入C#, Oracle。我想写一个可以列出这样的查询。我尝试过自由文本搜索。但是如果用大写/小词,不支持通配符,甚至是技能的顺序,都无法获取。

以下是示例查询

Select * from profiles where freetext(skills, ‘C#,Oracle’)

3 个答案:

答案 0 :(得分:11)

从我的POV中,正确(和不受欢迎)的答案是重新设计您的表结构:如果您想要单独访问它们,您应该永远不会在单个字段中列出值列表。

答案 1 :(得分:0)

免责声明:我同意@EugenRieck(该答案为+1) - 在一个字段中填充CSV字符串是糟糕的设计。

但如果你必须...... look here first。或try a CLR solution

答案 2 :(得分:0)

this是关于全文的好文章。

匹配两者 C#和Oracle

select * From Profiles where contains(*,'"Oracle" and "C#"')

匹配 C#或Oracle

select * From Profiles where contains(*,'"Oracle" or "C#"')

Full-text: and/or