|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : octobre 2009 Messages : 26 ![]() |
Bonjour,
1. J'aimerai effectuer une requête pour obtenir le nom d'une entité. La requête devrait me permettre d'obtenir le nom de l'entité dans la langue voulue ou le nom de l'entité dans la langue par défaut ou le nom 'interne' de l'entité. J'ai 2 tables Table1: ID_Object Nom_Interne Table2: ID_Object Code_Langue Nom Pour l'instant je fais cela en 3 requêtes max. Si Code :
SELECT ID_Object FROM Table2 WHERE ID_Object = xx AND Code_Langue = yy Code :
SELECT ID_Object FROM Table2 WHERE ID_Object = xx AND Code_Langue = zz sinon Code :
SELECT ID_Object FROM Table1 WHERE ID_Object = xx 2. J'aimerai effectuer une recherche par nom (avec like) avec les mêmes tables dans une langue donnée avec les mêmes règles càd n'obtenir qu'une fois chaque entité qui doit avoir le bon nom dans la langue donnée ou dans la langue par défaut ou le bon nom 'interne'. Merci d'avance pour votre aide |
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Bonjour
Vous pouvez faire quelque chose comme ça : Code SQL :
|
||
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : octobre 2009 Messages : 26 ![]() |
Merci.
![]() Est-il possible d'adapter cette requête pour utiliser contains (à la place de like)? |
|
|
00
|
|
|
#4 | |
|
Membre Expert
![]() |
Citation:
Comme çà je dirais non... pour çà le FULLTEXT est contraignant mais cela est possible en passant par des unions par exemple...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
que donne ceci :
Code SQL :
Vous pouvez aussi ajouter la clause CONTAINS dans les conditions de jointure. bref, il y a des solutions, mais cela dépend aussi de ce que vou svoulez exactement. Voulez vous faire la recherche uniquement sur le nom qui "ressort", ou sur n'importe quel nom : Si par exemple, un produit n'a pas de nom dans la langue mais un nom par défaut "filtre" et que le nom_interne est "filtre à huile", voulez vous qu'une recherche sur "huile" le fasse ressortir ? |
||
|
|
10
|
|
|
#6 |
|
Invité régulier
![]() Inscription : octobre 2009 Messages : 26 ![]() |
Merci de la réponse.
![]() Malheuresement, c'est beaucoup plus lent que la requête utilisant like contains: CPU time = 1388 ms, elapsed time = 1421 ms. like : CPU time = 15 ms, elapsed time = 64 ms.
|
|
|
00
|
|
|
#7 | |
|
Membre Expert
![]() |
Citation:
Essayez avec des unions...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
|
00
|
|
|
#8 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Je ne vois pas l'intérêt d'utiliser le FULLTEXT ici.
A moins que la colonne nom soit vraiment une description à part entière ? ++ |
|
00
|
Copyright © 2000-2012 - www.developpez.com