Accueil > Forum > > > > Un "select" particulier (je ne sais pas comment faire ni même si c'est possible)
Un "select" particulier (je ne sais pas comment faire ni même si c'est possible)
lundi 25 juin 2007 à 13:59:49 |
Un "select" particulier (je ne sais pas comment faire ni même si c'est possible)

Polack77
|
Bonjour,
Je développe un logiciel qui (entre autre) enregistre des
phrases en les découpant en mot (le pourquoi est un peut compliquer à expliquer
mais est justifiable).
La première table est nommé "Phrase" contient 4
colonnes (ID_Phrase,langue,ID_Mot,Order_Mot)
La seconde table est nommé "Mot" contient 2 colonnes
(ID_Mot,Mot) Soit
par exemple :
La phrase : "Bonjour tout le monde." sera stocké
dans deux tables :
----------------------------------------------
----------------------
| ID_Phrase | Langue | ID_Mot | Order_Mot
| | ID_Mot
| Mot |
----------------------------------------------
----------------------
| 1
| 'FrFr' | 0
| 0
| |
0 | 'Bonjour' |
| 1
| 'FrFr' | 1
| 1
| |
1 |
'tout' |
| 1
| 'FrFr' | 2
| 2
| |
2 |
'le' |
| 1
| 'FrFr' | 3
| 3
| |
3 | 'monde.' |
----------------------------------------------
---------------------- Pour le moment je sais écrire et lire une phrase sans
problème mais je voudrais maintenant savoir si une phrase existe déjà en base
ou non (sachant que je connais les ID_Mot de ma phrase à tester, je ne sais même pas si ça un intérêt )
Sois avoir une requête à la quelle je passe mes mots (ou référence au mot) et
qui me renvoie un ID_Phrase si la phrase existe ou rien si elle n'existe pas.
Possible ou non à faire sous forme de requête?
Remarque : Je travail sous PostgreSQL.
J'espère avoir été claire.
Merci par avance Amicalement  Pensez "Réponce acceptée"
|
|
lundi 25 juin 2007 à 14:50:17 |
Re : Un "select" particulier (je ne sais pas comment faire ni même si c'est possible)

dominique.stock
|
Bonjour, Si la phrase "Tout le monde Bonjour" est différente de "Bonjour Tout le monde", alors, je pense que le mieux serait une procédure Stockée ...
Dom
|
|
lundi 25 juin 2007 à 15:46:41 |
Re : Un "select" particulier (je ne sais pas comment faire ni même si c'est possible)

Polack77
|
Je ne sais pas faire de procédure stockée .
Si tu connais un tuto bien je suis preneur .
Par contre mon programme final devra être compatible à toutes les base de données en
passant par l'ODBC (heeeeee, suije claire????) et je crois que la déclaration
d'une procédure stoker n'est pas la même en postgreSQL et en MySQL par exemple
(à moins que je ne dise des grosses conneries???)
Je suis en train de faire un bout de code VB pour faire ce que j'ai demandé,
par contre du coup j'exécute autant de requête qu'il y à de phrase qui commence
par le même mot que la phrase que je teste (désol je n'arive pas à le dire plus clairement ). Si tu sais faire une requête qui me retourne les deux phrases
"Tout le monde Bonjour" et "Bonjour Tout le monde" j'aurais
beaucoup moins de teste à faire par la suite.
La fonction VB (informatif et constante à ajouté) : Private Function PhraseExisteEnBdD(ByRef ReferanceRetour As Long, ByRef TableauMot() As Long) As Boolean Dim Donnees As ADODB.Recordset Dim ChaineTansitionTexte As String Dim ChaineMot As String Dim Compteur As Long Dim Compteur2 As Long Dim Tansition_TexteTrouver As Boolean Connection.RequeteRecupDonnees "select clef_libelle from transition_texte where num_libelle=" & TableauMot(0) & " and order_libelle=0;", Donnees ChaineTansitionTexte = Donnees.GetString(adClipString, , Chr(2), Chr(1)) Set Donnees = Nothing For Compteur = LBound(Split(ChaineTansitionTexte, Chr(1))) To UBound(Split(ChaineTansitionTexte, Chr(1))) - 1 Tansition_TexteTrouver = True Connection.RequeteRecupDonnees "select num_libelle from transition_texte where clef_libelle=" & Split(ChaineTansitionTexte, Chr(1))(Compteur) & " order by order_libelle;", Donnees ChaineMot = Donnees.GetString(adClipString, , Chr(2), Chr(1)) Set Donnees = Nothing If (UBound(TableauMot) - LBound(TableauMot)) = (UBound(Split(ChaineMot, Chr(1))) - 1) - LBound(Split(ChaineMot, Chr(1))) Then For Compteur2 = LBound(TableauMot) To UBound(TableauMot) If TableauMot(Compteur2) <> Split(ChaineMot, Chr(1))(Compteur2) Then Tansition_TexteTrouver = False End If Next Else Tansition_TexteTrouver = False End If If Tansition_TexteTrouver Then ReferanceRetour = Split(ChaineTansitionTexte, Chr(1))(Compteur) PhraseExisteEnBdD = True Exit Function End If Next PhraseExisteEnBdD = False End Function
Amicalement  Pensez "Réponce acceptée"
|
|
lundi 25 juin 2007 à 15:57:36 |
Re : Un "select" particulier (je ne sais pas comment faire ni même si c'est possible)

dominique.stock
|
un truc comme ça .. ? select id_phrase from phrase where id_mot in (select id_mot from mot where mot in (....)) group by id_phrase having(count(id_mot)) = nbmot
Dom
|
|
lundi 25 juin 2007 à 17:08:48 |
Re : Un "select" particulier (je ne sais pas comment faire ni même si c'est possible)

Polack77
|
Désol pour l'attente (client au tél)  MERCI!!!  Ce n'est pas exactement ce que je voulais (ce qui explique que je ne valide pas ta réponce pour le moment) mais les temps de traitements de mon appli on considérablement réduit graçe à toi (div par ~ 10!!!  ) Amicalement  Pensez "Réponce acceptée"
|
|
lundi 25 juin 2007 à 17:30:53 |
Re : Un "select" particulier (je ne sais pas comment faire ni même si c'est possible)

Polack77
|
Hooooo non   !!! Ta solution est bien pour postgreSQL mias il semble que MySQL ne sais pas faire de requete imbriqué. ici en bas de la page : [ Lien ]Je garde pour le momant mon code mega long  Merci quand même Amicalement  Pensez "Réponce acceptée"
|
|
lundi 25 juin 2007 à 17:40:17 |
Re : Un "select" particulier (je ne sais pas comment faire ni même si c'est possible)
|
lundi 25 juin 2007 à 17:49:43 |
Re : Un "select" particulier (je ne sais pas comment faire ni même si c'est possible)
|
mardi 26 juin 2007 à 14:05:22 |
Re : Un "select" particulier (je ne sais pas comment faire ni même si c'est possible)

Polack77
|
J'ai trouvé
Je fais une commande "INTERSECT" soit :
SELECT ID_Phrase FROM Phrase WHERE ID_Mot = 0 AND Order_Mot = 0
INTERSECT
SELECT ID_Phrase FROM Phrase WHERE ID_Mot = 1 AND Order_Mot = 1
INTERSECT
SELECT ID_Phrase FROM Phrase WHERE ID_Mot = 2 AND Order_Mot = 2
INTERSECT
SELECT ID_Phrase FROM Phrase WHERE ID_Mot = 3 AND Order_Mot = 3
Du fais que je construit mes requêtes par code programme (en VB) c'est super
simple à faire.
De plus (à moins que je ne dise des conneries) la commande
"INTERSECT" est en SQL2 donc compatible à quasi tous les types de
base de données.
Merci à tout ce qui on cherchés et bien sure merci à
"dominique.stock" pour ces réponses .
Amicalement
Pensez "Réponce acceptée"
|
|
mardi 26 juin 2007 à 14:12:22 |
Re : Un "select" particulier (je ne sais pas comment faire ni même si c'est possible)

dominique.stock
|
Bien joué !!
Je ne savais pas que tu construisais tes requêtes.
INTERSECT : moi j'utilise SQLServer et cela n'existe pas ... j'aimerais bien...
Encore une fois: Bien joué !
Dom
|
|
Cette discussion est classée dans : possible, mot, id, existe, phrase
Répondre à ce message
Sujets en rapport avec ce message
Nombre de requête imbriquer max??? [ par Polack77 ]
Bonjour , Je développe acculement une appli (en VB) qui gère une base de données. Mon problème est que je dois être compatible avec un maximum de SGBD
Requête qui boucle sur elle même [ par spyro666 ]
Bonjour, j'aurais besoin d'une information : Comment puis-je faire une requête qui boucle sur elle même avec mysql4 ? Est au moins possible ou faut-il
Gestion doublons group by & order by [ par yazer ]
voila, je souhaite sélectionner le company_id correspondant au company_id de ayant le date_embauche le plus élevé chaque user_idpar exemple :company_i
affichage [ par Eros2007 ]
Bonjour tout le monde voila j'ai une petite chose qui m'echape pour l'affichage. voila j'utilise 3 table paradox table1(élèves),table2(cours)
insérer une variable dans une requete sql [ par fatatra ]
Bonjour a tous;je cherche a integrer une variable php dans une requéte my sql.exemple:$id = $_POST['listeJoueurs']; //je recupere l'id correspond a u
Inserer des données [ par JALEO WAHRANI ]
Bonjour à tous,je souhaiterais inserer des données dans 2 tables à la fois.On a d'un côté la table t_personnes(id, nom, prenom, no_insee)et de l'a
Pb de requete Drop [ par yanis7518 ]
Salut a tousj'ai une requete qui doit supprimer la table seulement si elle existe. Voici la Requete : IFEXISTS(<font color="#0
syntaxe SQL, insertion d'une chaine de caracteres [ par LaTatadu91 ]
Bonjour a tous,Voila mon probleme j'effectue a partir d'un programme dev en C++ des requetes SQL vers SQL Server Express.Ce sont des requetes plutot s
Probleme d'insert sql a partir d'un code C [ par caro4200 ]
Bonjour,J'ai une procédure stockée qui s'excute bien lorsque je l'appelle de dataviewer.Par contre, lorsque je l'appelle à partir d'un code C, on sort
Problème SQL TQuery [ par corole3 ]
Probleme avec un TQuery + requetes Bonsoir, j'arrive à envoyer ma requête à ma base via SQL explorer, tout fonctionne. Si je met ma requête d
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : ORACLE FORMSRE : ORACLE FORMS par csmahicham
Cliquez pour lire la suite par csmahicham
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|