Requete !! Pour trouver un mot - SQL/NoSQL - Programmation
Marsh Posté le 14-04-2005 à 17:29:03
- soit "tu attaques de front" avec LIKE, LEFT et % , mais bon là tu risques de paumer l'optimiseur en route et ça risque d'être "cracra" niveau perfs
- soit tu la joues plus finement, et tu décomposes le boulot avec des tables temporaires (1-2 à vue de nez, ça devrait être suffisant) et qq DELETE bien placés ...
Marsh Posté le 14-04-2005 à 21:06:08
J'ai un peu de mal a saisir se que tu veux dire, je voi un peu le principe du LIKE j'ai regardé un peu a quoi sa consisté mais je saisi pas trop en quoi tes tables temporaire pourrai maidé . Si tu pouvai develloper un peu ton idé , stp
Marsh Posté le 15-04-2005 à 09:39:46
"De front" :
Tu balances des requêtes du style
SELECT <les colonnes que tu veux> |
à partir d'un script où tu fais varier la variable le_pattern, de l'ensemble du mot recherché à la première lettre du mot recherché, en t'arrêtant quand ca matche, ou quand tu as balayé tout le mot sans rien trouvé bien sur. Et tu oublies pas d'ajouter, % à lafin de le_pattern avant chaque requête sinon le LIKE t'aidera pas bcp
J'ai laissé tombé le LEFT direct en SQL, vu que MySQL ne connait pas encore les proc. stockées ...
Marsh Posté le 15-04-2005 à 11:38:45
Escuse moi encore 2min Zzozo mais peut tu me dire la difference entre un t.Nom LIKE 'pwet'
et un t.Nom='pwet'
Marsh Posté le 15-04-2005 à 11:41:28
Krollo a écrit : Escuse moi encore 2min Zzozo mais peut tu me dire la difference entre un t.Nom LIKE 'pwet' |
Aucune dans le résultat que ça va produire (y'aura ptet des différences ailleur, mais c'est pas là le pb ) ...
Par contre si tu mets un t.Nom LIKE 'pwet%' ca va correspondre à tous les Noms commençant par pwet
Marsh Posté le 14-04-2005 à 15:57:40
Bonsoir,
Voila mon pb :
J'ai un mot H1524D ( par exemple )
Et je cherche si il se trouve dans ma table Pwet colonne Nom,
Et si il n'y est pas cherché le H1524 ...
Et si il n'y est pas cherché le H152 ...
Et si il n'y est pas cherché le H15 ...
Et si il n'y est pas cherché le H1 ...
Et si il n'y est pas cherché le H ...
Sachant que Nom n'est pas la clé primaire de Pwet ( donc plusieur solution possible.
Et je doit faire cet manip pour une 100ene de mot se trouvant dans une autre table (Prout.nom).
Donc j'avais une idée sur :
select *
from Pwet
where Nom in ( select nom
from Prout
where idprout = xXx );
Mais sa marche pas et pi sa cherche pas pour tous les "mots".
Sachant que j'utilise mysql 4.0.15-max
Message édité par Krollo le 14-04-2005 à 16:08:58