IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Classer des enfants par date de naissance lorsqu'elles sont connues


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 718
    Par défaut Classer des enfants par date de naissance lorsqu'elles sont connues
    Bonjour,
    J'ai une base de données de généalogie.
    Cette base contient des dates de naissance connues, partiellement connues, ou inconnues et une colonne birthorder connu ou inconnu.
    Chaque colonne peut être nulle.
    Je classe les données par dates comme ceci:
    ORDER BY birthyear, birthmonth, birthday, birthorderLe problème est que les dates inconnues avec un ordre inconnu apparaissent en premier alors que je voudrais les rejeter à la fin.
    Je ne sais pas comment rejeter à la fin les dates de naissances inconnues dont l'ordre de naissance est aussi inconnu. J'ai essayé un CASE WHEN ... THEN ... mais je n'y arrive pas.

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2022
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2022
    Messages : 367
    Par défaut
    Bonjour,
    Quelque chose comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SELECT *
    FROM genealogie
    ORDER BY
        CASE
            WHEN birthyear IS NULL AND birthorder IS NULL THEN 1
            ELSE 0
        END,
        birthyear,
        birthmonth,
        birthday,
        birthorder;
    Ceci dit c'est un problème SQL et non pas php...
    Cdt

  3. #3
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 342
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 342
    Billets dans le blog
    17
    Par défaut
    Avec COALESCE(), tu peux donner une valeur élevée aux colonnes susmentionnées NULL :

    ...
    ORDER BY COALESCE(birthyear, 9999) ASC, COALESCE(birthmonth, 99) ASC, COALESCE(birthday, 99) ASC, COALESCE(birthorder, 100) ASC

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/07/2014, 15h39
  2. Classer des résultats par date/heure
    Par PedroBD dans le forum Langage SQL
    Réponses: 12
    Dernier message: 27/11/2006, 15h48
  3. Classer des fichiers par date
    Par lorentdups dans le forum Langage
    Réponses: 3
    Dernier message: 01/10/2006, 17h14
  4. [MySQL] Classer des résultats par ordre alphabétique
    Par Him dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 13/07/2006, 14h59
  5. Classer des messages par date ET par pertinence
    Par pocpoc2 dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 04/07/2005, 10h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo