requete SQL pour trouver un mot dans un champ

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : requete SQL pour trouver un mot dans un champ

par Berzemus » 19 nov. 2007, 22:48

eum.. tu es sur d'avoir besoin d'un champ LONGTEXT ? Tu comptes y enregistrer des films ? des dvd's ?

Personnellement, je vois mal la nécessité d'un champ textuel pouvant aller jusqu'a 4Go.. à mon avis, MEDIUMTEXT avec ses 16 mo's me parait largement assez pour tout. (et même TEXT...)


Après petite enquête.. y'a moyen de mettre Tout Wikipedia (version anglaise) dans un tel champ.. super pratique !! (Wikipedia compte plus de 3.500.000.000 caractères)

par zeus » 19 nov. 2007, 18:06

Les index FULLTEXT sont utilisés avec les tables MyISAM et peuvent être créés depuis des colonnes de types CHAR, VARCHAR, ou TEXT ...
C'est pourtant au tout début de la doc :roll:

par béka » 19 nov. 2007, 17:20

Merci du conseil, j'ai alors lu la documentation que tu as linkée et lorsque je fais cette requête

Code : Tout sélectionner

SELECT * FROM table WHERE MATCH (champ1,champ2) AGAINST ('texte à trouver');
j'ai ce message d'erreur
#1191 - Can't find FULLTEXT index matching the column list
Pourquoi ? Qu'est-ce que ça signifie ?

[EDIT] : c'est bon, il suffisait que je mette mes champs en fulltext. Par contre, ces requêtes ne archent pas sur les champs du type date et year ?

par zeus » 19 nov. 2007, 16:51

ATTENTION : cette manière de faire (LIKE '%...%') est un gouffre pour ton serveur de base de données.
Tu vas écrouler les performances de ton application, de ton serveur (et si tu es sur un serveur mutualisé, tu risques même de représailles de ton hébergeur)

Pour ce que tu cherches à faire, il existe les recherches en fulltext

requete SQL pour trouver un mot dans un champ

par béka » 19 nov. 2007, 16:26

Bonjour,

je voudrais savoir comment faire (je vous demande pas la solution mais les outils uniquement) pour faire une construire une requête SQL pour chercher un mot dans différents champs d'une table.
Il faudrait que je puisse trouver le mot "exemple" parmis tout le texte inscrit dans un champ LONGTEXT de ma table (une sorte de moteur de recherche).

Comment faire, quels outils SQL utiliser ?


Je pense avoir trouver, je vais utilsier

Code : Tout sélectionner

WHERE xxxxx LIKE '% mot_a_chercher %'