Searching a column with comma separated values

风格不统一 提交于 2019-11-27 04:51:50

问题


I have SQL server 2008 r2 edition, which am working on and a .Net webpage as front end.

Coming to the issue, there is a column in the database which basically consists of various skill sets separated by a comma. For example some candidate has a 3 different skill sets namely C#, SQL server, Oracle. The user who wants to list the candidates having the skills of both C# and Oracle will provide the input as C#, Oracle in a text box on the webpage. I want to write a query which can list out such. I have tried freetext search. But it fails to fetch if in Capital/small words, no support for wildcard character, even the order of skills.

Below is the sample query

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

回答1:


From my POV the correct (and unwelcome) answer is to redesign your table structure: You should never ever have a list of values in a single field, IF YOU WANT TO ACCESS THEM SEPARATELY.




回答2:


DISCLAIMER: I agree with @EugenRieck (+1 to that answer) - stuffing a CSV string in one field is bad design.

But if you must...look here first. Or try a CLR solution.




回答3:


this is a good one about full-text.

Match Both C# and Oracle

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

Match Either C# or Oracle

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



来源:https://stackoverflow.com/questions/8679376/searching-a-column-with-comma-separated-values

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!