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?

Était-ce utile?

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')
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top