selectionner des colonnes selon des critères spéciaux

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : selectionner des colonnes selon des critères spéciaux

par Patriboom » 10 déc. 2008, 18:59

Et tandis que tu y es, que tu veux restructurer ta base, peut-être est-il plus souple encore d'avoir deux tables plutôt qu'une. Dans la première: le nom; dans la deuxième: les valeurs.

par Victor BRITO » 10 déc. 2008, 18:43

Je pense à quelquechose comme :

Code : Tout sélectionner

id | colonne | valeur | nom ---+----------+--------+---- 1 | colonne1 | 8 | azer 2 | colonne2 | 0 | azer 3 | colonne1 | 12 | xxxxx 4 | colonne2 | 3 | xxxxx .....
Auquel cas la requête ressemblera à quelque chose de ce genre :

Code : Tout sélectionner

SELECT * FROM ta_table WHERE nom = 'azer' AND valeur > 9;
Tout simplement. ;)

par Calimero » 10 déc. 2008, 18:36

75 * 600 = 45 000 enregistrements potentiels... Sur une table aussi simple, ça tient sans aucun problème ;-)

Il faudra par contre bien choisir les types de données des colonnes de cette table, et (à voir par la suite) éventuellement placer des index, pour gagner encore en performances.

par mike001 » 10 déc. 2008, 14:11

merci beaucoup mais si j'ai 75 nom à entré sa tiendra ?

par Calimero » 10 déc. 2008, 04:32

Une solution propre serait de modéliser (refaire) ta base dans les normes, est-ce bien raisonnable d'avoir 600 colonnes dans une seule table, et surtout de vouloir faire une opération sur toutes ces colonnes à la fois ?

Je pense à quelquechose comme :

Code : Tout sélectionner

id | colonne | valeur | nom ---+----------+--------+---- 1 | colonne1 | 8 | azer 2 | colonne2 | 0 | azer 3 | colonne1 | 12 | xxxxx 4 | colonne2 | 3 | xxxxx .....

par mike001 » 10 déc. 2008, 00:25

lol je le connaissais ce truc classique, mais sa peut aller jusqu'a 600 Colonnes ...
Sinon merci quand même ... :)
en plus je veux que sa sélectionne toutes les colonnes qui sont supérieur à 9 et pas les autres quand le nom est égale à azer, je sais pas si c'est possible

Personne à une solution s'il vous plaît ?

Merci d'avance

par furiouslol » 10 déc. 2008, 00:07

Salut,

Ben le truc classique c'est

Code : Tout sélectionner

SELECT * FROM tatable WHERE nom="azer" AND colonne1>9 AND colonne2>9 AND colonne3>9 ... AND colonne99>9 AND colonne100>9
Mais si ta table est grosse ca va prendre des plombes :?

selectionner des colonnes selon des critères spéciaux

par mike001 » 09 déc. 2008, 20:24

Bonjour,

Voilà comment se compose en principe ma table de ma base de donnée :

Code : Tout sélectionner

Colonne 1 | Colonne 2 | Colonne 3 | ........... | Colonne 100 | nom 10 | 10 | 8 | | 10 | azer
Et en faite je voudrais sélectionner toutes les colonnes quand le nom est égale à azer par exemple,
donc sa c'est facile, mais le soucis, c'est comment on fait quand on ve séléctionner toutes les colonnes où les valeurs sont supérieur à 9 quand le nom est azer ?

Voilà j'espère vous avez compris et merci d'avance pour votre aide ...

Mike, ++

EDIT :

en gros sa ressemblerait à sa :

select * WHERE *>9 AND WHERE nom='azer'


en faite je veux que sa séléctionne toutes les colonnes supérieur à 9 quand la colonne nom est azer, ...

Merci d'avance,

Mike, ++