Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/04/2011, 18h53   #1
Membre du Club
 
marwa .net
Inscription : décembre 2009
Messages : 126
Détails du profil
Informations personnelles :
Nom : marwa .net
Localisation : Tunisie

Informations forums :
Inscription : décembre 2009
Messages : 126
Points : 53
Points : 53
Par défaut full text search

Bonjour,
En utilisant la fonction Contains de full Text search :
pour chercher un simple mot , on le met entre de côtes de la façon suivante:
' monMot '
Pour chercher un texte , on le fait de la façon suivante :
'"mon mot à chercher"'
et ce d'après la documentation msdn :
Citation:
<simple_term>
Specifies a match for an exact word or a phrase. Examples of valid simple terms are "blue berry", blueberry, and "Microsoft SQL Server". Phrases should be enclosed in double quotation marks (""). Words in a phrase must appear in the same order as specified in <contains_search_condition> as they appear in the database column. The search for characters in the word or phrase is not case-sensitive. Noise words (or stopwords) (such as a, and, or the) in full-text indexed columns are not stored in the full-text index. If a noise word is used in a single word search, SQL Server returns an error message indicating that the query contains only noise words. SQL Server includes a standard list of noise words in the directory \Mssql\Binn\FTERef of each instance of SQL Server.

Punctuation is ignored. Therefore, CONTAINS(testing, "computer failure") matches a row with the value, "Where is my computer? Failure to find it would be expensive." For more information on word-breaker behavior, see Word Breakers and Stemmers.
C'est simple lorsque vous entrez directement le mot ou la phrase à chercher , mais lorsque vous la récupérer dans une variable puis la passer à la fonction contains ça devient compliqué

par exemple j'ai une variable @searchedText qui prend une valeur saisie par l'utilisateur puis je vais la passer à la fonction contains : contains (maTable.attribut, @searchedText ), comment je peuxmettre ici @searchedText entre ""

Merci de m'aider
marwa21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 21h24   #2
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 953
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 953
Points : 17 773
Points : 17 773
Code :
1
2
3
4
5
6
7
DECLARE @recherche VARCHAR(max);
SET @recherche = 'un mot et un autre';
--> dans la sp :
SET @recherche = '"' + @recherche +'"';
SELECT *
FROM   dbo.T_CRASH_CRH
WHERE  CONTAINS(CRH_RECIT, @recherche)
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 06h51   #3
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Citation:
DECLARE @recherche VARCHAR(max);
SET @recherche = 'un mot et un autre';
--> dans la sp :
SET @recherche = '"' + @recherche +'"';
SELECT *
FROM dbo.T_CRASH_CRH
WHERE CONTAINS(CRH_RECIT, @recherche)
Vous êtes en effet obligé de passer par des variables, or ceci vous empêche par exemple l'utilisation de fonctions tables...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 13h08   #4
Membre du Club
 
marwa .net
Inscription : décembre 2009
Messages : 126
Détails du profil
Informations personnelles :
Nom : marwa .net
Localisation : Tunisie

Informations forums :
Inscription : décembre 2009
Messages : 126
Points : 53
Points : 53
merci
marwa21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h26.


 
 
 
 
Partenaires

Hébergement Web