|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre Expert
![]() ![]() |
Bonjour à toute et à tous
Dans le cadre de mon stage, je dois créer une interface de configuration de répartiteurs de charge. Une des features demandées est de suggérer des "firewall marks" qui ne sont pas encore utilisées. J'ai donc une table virtual_server qui contient, entre autres, un champ fwmark. Code :
Exemple: 2, 16, 8, 12, 24, 62 J'ai besoin de trouver quelques (10, mettons) de ces nombres qui ne sont pas dans cette table. De préférence les plus petits possibles. Je peux, bien entendu, utiliser un select, une procédure ou quoi que ce soit, au choix. Comment puis-je faire ça proprement ? |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : janvier 2006 Messages : 951 ![]() |
le tout c'est de savoir si tu as une liste de tous les fwmark dispo ou pas dans la base.
Si tu l'as il suffit de faire un "NOT IN" et un tri croissant sur le fwmark.
__________________
PHP fait nativement la validation d'adresse électronique Utilisez le bouton résolu! |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() ![]() |
Le nombre de marques est limité à 2³² (voire 2⁶⁴ sur le matériel ici), donc j'aime autant ne pas définir de table qui les contient toutes
|
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() |
Bonjour,
Il doit y avoir moyen de construire une requête qui récupère tous les fwmark existants et l'écart qui sépare cet fwmark de son suivant (trié). Attention, si la table est très grande, ça peut être source de problème de perfs. Ensuite il faut prendre les 10 plus petits de la liste dont l'écart est > 2.
__________________
www.nudge.org Surveillez et optimisez vos applications Java |
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() Inscription : février 2009 Messages : 114 ![]() |
Si j'ai bien compris, tu souhaite récupérer la liste des nombres (les 10 plus petits) dont l'écart est supérieur ou égale à 2?
je pense qu'il te faut une deuxième table pour fait un NOT IN de ton fwmark dans ta deuxième table où tu as tes nombres.
__________________
bbl MeMa |
|
|
00
|
|
|
#6 | |
|
Membre Expert
![]() ![]() |
Hello
Merci pour ces idées J'ai fini par résoudre la question avec un petit bout de code. C'était tellement simple, comment n'y ai-je pas pensé plus tôt ? ![]() Cela dit... Citation:
|
|
|
|
00
|
|
|
#7 | ||
|
Membre Expert
![]() |
Voici ce que ça pourrait donner :
Code :
|
||
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() |
L'idée est pas mal je dois dire
Cela dit, il est vrai que ce n'est pas très gentil pour ce pauvre mysql... Merci pour cette réponse ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com