问题
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