CONTAINS is a completely different function; it is a predicate-based query for full-text columns; it is not a function to determine if a column contains a row.
For a running query, you can use this:
SELECT MSDS FROM dbo.MSDSSearch3 WHERE CONTAINS(MSDS, '"STYCAST*"')
There you have a prefix search, and not a simple search, as you currently have.
More details: http://msdn.microsoft.com/en-us/library/ms187787.aspx
Perhaps, the way you use it, the text “STYCAST 2851 BLACK” does not get into the results, because it has one more character than “STYCAST 50300 LV”, so this is [7 out of 17 matches] against [7 out of 16 matches]. I'm not sure, but that might explain this strange behavior.
daniloquio
source share