Page 1 sur 1

[Résolu] Requête pour rechercher des mots clés

Publié : 14 sept. 2019 05:47
par phr75

La modération vous a écrit: Titre modifié pour plus de clarté.
Merci de faire cet effort par vous-même la prochaine fois.

Bonjour je voudrai créer une requète qui dans recherche les occurences de mots clés contenus dans une table dans une liste de chaines de caractères contenus dans une autre table. J'essaie avec Instr mais la fonction n'est pas accessible:

SELECT "Table1"."texte1", "mot clés"."mot clé" FROM "Table1", "mot clés" WHERE instr( 1, "Table1"."texte1", "mot clés"."mot clé" ) <> 0

Comment faire ?

Re: Recherche de mots clés

Publié : 14 sept. 2019 07:47
par jeanmimi
Bonjour,
Puisqu'il semble y a avoir deux Tables, pourquoi le code SQL ne fait appel qu'à une seule Table Table1 ?
La syntaxe des commandes SQL est décrite ici :
https://wiki.openoffice.org/wiki/FR/Doc ... h09#SELECT

Pour faciliter l'aide, tu peux aussi joindre ta Base.

Re: Requête pour rechercher des mots clés

Publié : 14 sept. 2019 09:09
par Dude
phr75 a écrit : créer une requète qui dans recherche les occurences de mots clés
Même genre de question : https://forum.openoffice.org/fr/forum/v ... =9&t=48628

InStr n'est en aucune manière une instruction SQL standard.
C'est lié à Microsoft et à ses outils comme Access.
Si tu utilises le format natif HSQL, cela ne peut fonctionner.

Re: Requête pour rechercher des mots clés

Publié : 15 sept. 2019 04:35
par phr75
Bonjour
Merci de vos éléments. Pour préciser:
- j'ai des chaines de caractère dans une table "table 1"
- f'ai des mots clés associés à des références dans une table "table2" qui comprend donc 2 variables "mots clés" et "reférence"
- je veux créer une requete qui me donne une liste de toutes les occurences des mots clés de table 2 dans les chaines de caractère de table1, et pour chaque occurence la référence associée au mot clé
Ci joint ma base avec une requete utilisant Instr, qui ne marche pas
Merci de votre aide !

Re: Requête pour rechercher des mots clés

Publié : 15 sept. 2019 08:56
par jeanmimi
Le code SQL suivant permet de trouver la position d'une chaine de caractère dans un texte; en mettant le critère >0 il est possible de n'afficher que les textes où le mot clé peut être trouvé.

Code : Tout sélectionner

SELECT "Table1"."texte1", "Table2"."mot clé", POSITION( "mot clé" IN "texte1" ), "Table2"."reference" FROM "Table1", "Table2" WHERE POSITION( "mot clé" IN "texte1" ) > 0 ORDER BY "Table1"."texte1" ASC
Peux-tu le tester dans ta Base réelle ?

Re: Requête pour rechercher des mots clés

Publié : 16 sept. 2019 20:32
par phr75
Oui ça marche impec merci

Re: Requête pour rechercher des mots clés

Publié : 16 sept. 2019 20:45
par micmac
Bonjour,

Problème résolu ?

Il est d'usage d'ajouter manuellement au début du titre de votre premier message la balise [Résolu] (avec un R majuscule et sans oublier le e accentué, le tout entre crochets) et de cocher l'icône Image

Image

Cordialement

Re: Requête pour rechercher des mots clés

Publié : 14 janv. 2020 20:38
par phr75
jeanmimi a écrit :Le code SQL suivant permet de trouver la position d'une chaine de caractère dans un texte; en mettant le critère >0 il est possible de n'afficher que les textes où le mot clé peut être trouvé.

Code : Tout sélectionner

SELECT "Table1"."texte1", "Table2"."mot clé", POSITION( "mot clé" IN "texte1" ), "Table2"."reference" FROM "Table1", "Table2" WHERE POSITION( "mot clé" IN "texte1" ) > 0 ORDER BY "Table1"."texte1" ASC
Peux-tu le tester dans ta Base réelle ?
Re bonjour quelques mois plus tard: j'ai un nouveau problème, je voudrais n'afficher qu'un mot clé trouvé par enregistrement, et avec ton code je trouve toutes les occurences et donc je crée un enregistrement par occurence. Mon code:

SELECT DISTINCT "Depenses"."ID", "mot-cle"."souscategorie" FROM "Depenses", "mot-cle" WHERE POSITION( "motcle" IN "Operation" ) > 0

J'ai essayé avec GROUP BY "ID" et FIRST:

SELECT DISTINCT "Depenses"."ID", FIRST("mot-cle")."souscategorie" FROM "Depenses", "mot-cle" WHERE POSITION( "motcle" IN "Operation" ) > 0 GROUP BY "ID"

Mais j'ai une syntax error

Une idée ?
La modération vous a écrit: Nouveau problème = nouvelle question
C'est pas compliqué à comprendre non ?