|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : octobre 2007 Messages : 92 ![]() |
Bonjour,
Je viens vers vous car je n'ai pas trouvé ce que je cherchais : comment renvoyer les résultats de champs si ils sont remplis, et ne pas les renvoyer si ils sont vides? je m 'explique : j ai une table /table/ , où j'ai disons 10 colonnes /colonnes1 ... colonnes10/ je veux demander de m'afficher les colonnes1 à 3 , plus certaines colonnes seulement si elles sont avec des infos...par exemple afficher la colonne 5/6 et 7 si elles ont été remplies... suis assez clair? Car jusqu'ici, la demande me retourne tous les enregistrements, puisque les colonnes 1 à 4 sont remplies SELECT colonnes1,colonnes2,colonnes3,colonnes4,colonnes5,colonnes6,colonnes7 FROM table /// et là je mets quoi? WHERE .... suis perdu. Merci pour votre aide :-) |
|
|
00
|
|
|
#2 | |||||
![]() ![]() |
Citation:
Une table est composée de lignes et de colonnes, pas de champs. Le terme "enregistrement" que tu emploies est celui qui est le plus souvent employé à la place du bon terme "ligne". Le terme "vide" peut être interprété de deux manières et qui donnera deux résultats différents : - le marqueur NULL affichera NULL; - une chaîne vide '' n'affichera rien. Ta demande est ambigüe. Veux-tu n'afficher que les lignes pour lesquelles les colonnes 5, 6 et 7 ne sont pas NULL et/ou n'ont pas une chaîne vide ? Code :
Code :
__________________
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 ! |
|||||
|
10
|
|
|
#3 |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Saluton,
Pour le dire autrement, toutes les lignes de résultat retournées par la requête auront la même structure, que les colonnes nommées dans le SELECT contiennent qqe chose ou pas, voire NULL. Une ligne fait partie du résultat ou pas, mais, si elle en fait partie, elle possède les mêmes colonnes que toutes les autres lignes du résultat.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|
00
|
|
|
#4 | ||||
|
Futur Membre du Club
![]() Inscription : octobre 2007 Messages : 92 ![]() |
CINEPHIL merci :-) ton premier code me donne le résultat voulu : seules les colonnes avec des lignes renseignées apparaissent donc. Ce ci en mettant bien
Code :
Par contre , je n'ai pas réussi à faire fonctionner ton deuxieme code. On le marque simplement comme ça Code :
Code :
SELECT col1 FROM TABLE COALESCE(col5, ") Merci Et pour résumer : vaut mieux demander à 1 qui sait , plutôt qu'à 100 qui cherchent... PS: MALJUNA KRIS désolé mais c'est tres flou pour moi débutant ton explication, celle de CINEPHIL est bien plus concise / ..en tout cas, je ne me souviens pas avoir vu cet exemple dans le résumé SQL de Developpez.com : dommage. En esperant que ce résultat serve d'autres personnes pour une requête multiples conditions ;-) |
||||
|
|
00
|
|
|
#5 | |||||||||
![]() ![]() |
Citation:
Citation:
Citation:
Code :
Mais relis bien mon message, les deux requêtes n'ont pas le même objectif. La première ne retournera que les lignes pour lesquelles les colonnes 5 à 7 ne seront ni NULL ni vides et la seconde retournera toutes les lignes mais remplacera l'affichage éventuel d'un NULL par une chaîne vide, c'est à dire que rien ne s'affichera dans ces colonnes NULL. À toi de voir quel est ton besoin réel. Pour apprendre le SQL, fais un tour chez SQLPro.
__________________
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
|
Copyright © 2000-2012 - www.developpez.com