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

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
phr75
Fraîchement OOthentifié
Messages : 4
Inscription : 14 sept. 2019 07:40

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

Message 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 ?
Dernière modification par phr75 le 14 janv. 2020 21:33, modifié 2 fois.
OpenOffice 4.1.5 sous Windows 7
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: Recherche de mots clés

Message 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.
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25143
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

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

Message 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.
phr75
Fraîchement OOthentifié
Messages : 4
Inscription : 14 sept. 2019 07:40

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

Message 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 !
Pièces jointes
test.odb
(4.18 Kio) Téléchargé 118 fois
OpenOffice 4.1.5 sous Windows 7
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

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

Message 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 ?
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
phr75
Fraîchement OOthentifié
Messages : 4
Inscription : 14 sept. 2019 07:40

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

Message par phr75 »

Oui ça marche impec merci
OpenOffice 4.1.5 sous Windows 7
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9223
Inscription : 28 août 2010 10:45

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

Message 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
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
phr75
Fraîchement OOthentifié
Messages : 4
Inscription : 14 sept. 2019 07:40

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

Message 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 ?

OpenOffice 4.1.5 sous Windows 7
Verrouillé