|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : août 2008 Messages : 22 ![]() |
Bonjour à tous,
Je voudrais savoir si c'est possible d'utiliser une expression régulière dans une jointure ? En fait, le but est de lier 2 tables qui n'ont pas été conçues pour ça au départ... Dans la table qui me pose problème, il existe un champs "lien" avec l'id de l'article (ex: page?id=1). J'aimerais pouvoir extraire l'id pour pouvoir faire la liaison avec l'id de ma table principale. Voici l'idée (qui ne fonctionne pas évidemment) : Code :
|
||
|
|
00
|
|
|
#2 |
![]() ![]() |
As-tu essayé sans le SELECT après le ON ?
Code :
LEFT JOIN table2 ON table2.link REGEXP '[0-9+]' = table1.id
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : août 2008 Messages : 22 ![]() |
Bonjour,
Ca ne fonctionne pas non plus. Je pense que je fais fausse route ... C'est la 1ère fois que j'utilise REGEXP D'après la doc SQL, le résultat d'une expression régulière est toujours 0 ou 1,alors que je voudrais récupérer la valeur du champs ciblé ... Je me trompe ? Qu'en dites-vous ? |
|
|
00
|
|
|
#4 | |
![]() ![]() |
Citation:
Alors essaie avec un LIKE mais les performances risquent de ne pas être terribles si tu as beaucoup de lignes : Code :
LEFT JOIN table2 ON table2.link LIKE CONCAT('%', table1.id), '%')
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Inscription : août 2008 Messages : 22 ![]() |
Citation:
Avec l'id suivant par exemple : 1816 Il va me sortir les résultats suivants : 1816, 181, 816, ... Citation:
Pas le temps de le retourner dans tous les sens pour l'instant Le monde est sans pitié |
||
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
La structure de vos données dans la colonne "link" est elle normalisée ?
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : août 2008 Messages : 22 ![]() |
Que voulez-vous dire par normalisée ?
Les données sont en faite des liens. C'est toujours la même page (ex: page.php)
|
|
|
00
|
|
|
#8 | |
|
Invité de passage
![]() Inscription : août 2008 Messages : 22 ![]() |
Bin oui , l'idée est toute trouvée
Citation:
Merci à tous ! |
|
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
Ce que je veux dire c'est , est ce que vos données dans la colonne "link" sont toujours du type :
xxxxx?id=monlien ? Si oui, passez par les fonctions d'extractions de chaine et de recherche de position dans une chaine ... Genre Code :
LEFT JOIN table2 ON (SUBSTRING (table2.link , INSTR(link,"?id=") + 5) = table2.id)
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
Et bien c'est encore plus simple comme vous l'avez fait
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : août 2008 Messages : 22 ![]() |
Ha oui, c'est une autre solution ...
J'ai appris plein de truc grâce à ce problème Merci à vous ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com