Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
897 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  SELECT DISTINCT dans un text et longtext

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

SELECT DISTINCT dans un text et longtext

n°1238494
thiebo1237​5
Posté le 04-11-2005 à 11:21:10  profilanswer
 

Bonjour,
 
Dans ma base mysql, j'ai un champs qui est en text et un autre en longtext. Je voudrais faire une requete mysql pour trouver chaque mot de ces champs, quelque chose du genre :
 
SELECT DISTINCT (chaque mot???) FROM ChampsLongText ORDER BY (mot ???) \G;
 
et qui me retourne la liste (très longue donc) de mots utilisés dans l'ensemble des champs ChampsLongText de ma table. Si je fais une telle requete sur ce mail par exemple, il faudrait qu'il me retourne :
 
"
enregistrement 1 :
base
---------------------
enregistrement 2 :
champs
---------------------
enregistrement 3 :
faire
 
etc etc..."
 
J'espère que ma question est claire et que quelqu'un pourra m'aider. je ne sais pas si c'est ce type de requete qui convient, et je ne sais pas quoi mettre à la place des trucs entre paranthèses avec des points d'interrogation...
 
Aah oui, et pour rendre la chose un tout petit peu plus compliqué, il faudrait que je puisse dire que je ne veux que les mots qui commencent avec la lettre "a" par exemple, genre de requete :
 
SELECT DISTINCT (chaque mot???) FROM ChampsLongText ORDER BY (mot ???) WHERE (mot commence par a ????) \G;
 
Merci d'avance,
 
Thiebo

mood
Publicité
Posté le 04-11-2005 à 11:21:10  profilanswer
 

n°1238525
skeye
Posté le 04-11-2005 à 11:39:52  profilanswer
 

Je ne sais pas si c'est faisable en sql pur, ton histoire...[:pingouino]
En tout cas je ne vois pas de solution...[:urd]
 
C'est quoi l'objectif final? S'en servir de dictionnaire? :??:


---------------
Can't buy what I want because it's free -
n°1238556
thiebo1237​5
Posté le 04-11-2005 à 11:59:59  profilanswer
 

skeye a écrit :


C'est quoi l'objectif final? S'en servir de dictionnaire? :??:


 
Exactement ! Le champs ChampsLongText est en latin médiéval et ancien français (donc pas des langues dont tout et n'importe qui connaît les mots) et les explications (contenues dans d'autres champs) en français. Je voudrais pourvoir sélectionner chaque mot distinctement du champs ChampsLongText (disont MotChampsLongText) pour ensuite créer une nouvelle requete :
 
SELECT * FROM Mytable WHERE ChampsLongText LIKE '%MotChampsLongText%';
 
pour que l'utilisateur ne trouve que les enregistrements contenant ce mot si important.  
 
J'espère très très vivement que ce soit possible parce que c'est carrément une des fonctionalités les plus importantes de mon site.
 
Vous voyez le souci ? si le champs ChampsLongText était écrit en français ou anglais, j'aurais pu créer un formulaire html avec un input type="text" laissant à l'utilisateur la liberté de remplir le mot qu'il veut... mais comme c'est dans des langues mortes avec un vocabulaire instable et quasiment inconnu... je voudrais faire un formulaire html avec select... parce que sinon personne ne trouvera jamais rien (ce serait triste non ????)
 
si vous avez d'autres solutions... (est ce que c'est possible avec postgresql ???), ou des idées de solution, ce serait supersympa !

n°1238562
skeye
Posté le 04-11-2005 à 12:03:13  profilanswer
 

...et tu voudrais pas faire ce traitement une fois pour toutes? Une table pour la liste des mots, et une pour le lien entre cette table et ta table actuelle?


---------------
Can't buy what I want because it's free -
n°1238617
thiebo1237​5
Posté le 04-11-2005 à 13:34:55  profilanswer
 

skeye a écrit :

...et tu voudrais pas faire ce traitement une fois pour toutes? Une table pour la liste des mots, et une pour le lien entre cette table et ta table actuelle?


 
J'y avais pensé mais ce n'est pas possible, parce que j'entre mes textes au fur et à mesure, et il y a déjà près de 2.000 textes.... donc s'il faut que je me tape à faire une table en plus contenant uniquement les mots.... ça va être long, très très long.


Message édité par thiebo12375 le 04-11-2005 à 13:35:36
n°1238620
skeye
Posté le 04-11-2005 à 13:38:44  profilanswer
 

bah ajoute une procédure qui parcourt ton texte et remplit ton dico au moment où tu rentres ton texte, non?
Faire ça en dynamique c'est du suicide, à mon avis...:/


---------------
Can't buy what I want because it's free -
n°1238659
thiebo1237​5
Posté le 04-11-2005 à 14:16:51  profilanswer
 

skeye a écrit :

bah ajoute une procédure qui parcourt ton texte et remplit ton dico au moment où tu rentres ton texte, non?
Faire ça en dynamique c'est du suicide, à mon avis...:/


 
Ton idée est effectivement très bonne pour les actes à entrer par la suite - reste que j'ai un souci pour les actes déjà existants.
 
J'ai cru comprendre que c'est très très chaud en effet. Mon frère m'a proposé de faire une requete qui sélectionne les champs ChampsLongText les retourne à php et de faire une fonction en php qui saucissonne les texte sur les espaces et apostrophes et qui ensuite classe les mots par ordre alphabétique.  
 
Là je dis.... pfoui !!! Ca va être chaud aussi parce qu'à la longue il y aura beaucoup de mots et que php aura besoin de temps pour le faire, que la fonction n'est pas si simple et que je ne suis pas certain que ce soit la meilleure méthode. Qu'en penses-tu ?
 
Merci en tous cas pour tes réponses - ton idée de table supplémentaire rien que pour le dicco est pas mal du tout. J'ai du travail sur la planche avec ça, mais c'est peut être une des meilleures solutions.

n°1238664
skeye
Posté le 04-11-2005 à 14:19:54  profilanswer
 

J'en penses que ce que ton frère te propose me semble la seule solution relativement simple à mettre en place...ca te fait une moulinette longue à faire tourner la première fois, puis à lancer automatiquement sur chaque nouveau texte entré...
Et derrière le boulot est nettement plus simple, et surtout probablement énormément plus rapide... ;)


---------------
Can't buy what I want because it's free -
n°1238869
thiebo1237​5
Posté le 04-11-2005 à 16:26:41  profilanswer
 

Merci encore. Je pense que je vais mettre en pratique vos deux solutions, c'est à dire :
1. Créer une table dicco.
2. Créer la fonction moulinette de mon frère et mettre les résultats de cette fonction dans la table dicco.
3. Créer une fonction qui décompose le texte à chaque nouvelle entrée et qui inscrit les entrées nécessaires dans la table dicco
4. Utiliser la table dicco pour les <select> du formulaire html permettant de chercher les entrées contenant les mots cherchés.
 
Je sens que je vais y passer quelques bonnes soirées. Ou comme on dit en latin : oh felice me (que je suis heureux)

n°1238873
skeye
Posté le 04-11-2005 à 16:29:13  profilanswer
 

Normalement tu n'as besoin que d'une fonction, et ta moulinette va lire le contenu déjà entré dans ta base pour la passer par cette fonction...;)


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le 04-11-2005 à 16:29:13  profilanswer
 

n°1238961
thiebo1237​5
Posté le 04-11-2005 à 17:19:52  profilanswer
 

Je vais essayer de faire comme ça oui. J'avoues que je n'ai jamais eu besoin d'écrire de fonctions de traitement de strings avant, donc il faudra que je me tape un peu de manuel de php avant de toutes manières. :/

n°1238963
skeye
Posté le 04-11-2005 à 17:20:57  profilanswer
 

explode() devrait être ton ami... :D


---------------
Can't buy what I want because it's free -
n°1238972
thiebo1237​5
Posté le 04-11-2005 à 17:30:41  profilanswer
 

skeye a écrit :

explode() devrait être ton ami... :D


genre :
 
explode(" ", $string);
 
pour couper les mots à chaque espace ? Le manuel de php m'a l'air très clair. Tu m'as énormément aidé aujourd'hui, je te remercie beaucoup ! :jap:   ;)

n°1238990
skeye
Posté le 04-11-2005 à 17:58:18  profilanswer
 

De rien, c'est une question intéressante...[:petrus75]


---------------
Can't buy what I want because it's free -

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  SELECT DISTINCT dans un text et longtext

 

Sujets relatifs
Input Type=textCréation de select
pourquoi ça!!! probleme d'initalisation d'options de la balise selectSELECT sur plusieurs DB ?
Php - balise <select>probleme while et <select>
[Struts] html:text[MYSQL] Demande d'aide sur un SELECT
menu select qui affiche/cache les lignes d'un tableau[SQL Server] Tester si un champ = 0 dans clause SELECT
Plus de sujets relatifs à : SELECT DISTINCT dans un text et longtext


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR