CONTIENT fonction SQL ne correspond pas à underscores
Question
J'ai une table 'TableName' comme Id, Nom:
1 | something
2 | _something
3 | something like that
4 | some_thing
5 | ...
Je veux obtenir toutes les lignes de ce tableau où le nom containes « certains ». J'ai 2 façons:
SELECT * FROM TableName WHERE Name like '%some%'
Le résultat est le tableau:
1 | something
2 | _something
3 | something like that
4 | some_thing
Mais si j'utilise la fonction CONTIENT
SELECT * FROM TableName WHERE CONTAINS(Name,'"*some*"')
Je ne reçois que
1 | something
3 | something like that
Que dois-je faire pour CONTIENT travail de fonctionner correctement?
La solution
http://doc.ddart.net/mssql/sql70/ca -co_15.htm
Si vous lisez cet article, vous verrez que * signifie préfixe cela signifie ce mot doit commencer par cela, mais comme signifie que le mot contient la phrase clé.
Cordialement, Iordan
Autres conseils
La dernière fois que je regardais (certes SQL Server 2000) CONTAINS
n'a pas soutenu correspondant à caractère générique au début des mots, seulement à la fin. En outre, vous pourriez avoir besoin de vérifier vos fichiers de bruit pour voir si le caractère « _ » est ignorée.
Voir aussi
Comment vous obtenez leader recherche wildcard texte intégral pour travailler dans SQL Server?
Essayez ceci:
SELECT * FROM TableName WHERE CONTAINS(Name,'some')