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 :

Selectionner des dates


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 21
    Par défaut Selectionner des dates
    Bonjour !

    Je rencontre un problème pour sélectionner des dates dans une table.

    C'est une table qui contient quatre champs :
    id | id_profil | titre | date

    Je cherche à récupérer une ligne en particulier pour chaque id_profil.

    La sélection est basée sur la date qui doit correspondre aux critères suivants :
    Être la prochaine date actuelle ou à venir
    OU s'il n'y a pas de date à venir,
    la date la plus récente dans le passé

    Pourriez-vous m'aider à trouver une requête assez optimisée ?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY date DESC LIMIT 1

    A+.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 21
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Bonjour,

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY date DESC LIMIT 1

    A+.
    Merci, mais cela ne répond pas à mon problème.

    Je ne cherche pas à obtenir la date la plus grande mais la date la plus proche et si possible dans le futur.

    Par exemple, si j'ai ces dates :
    02/03/1999 28/07/2012 30/07/2012
    je veux sélectionner la deuxième.

    Si j'avais eu :
    02/03/1999 28/07/2001 30/07/2002
    j'aurais sélectionné 30/07/2002

    J'espère que cette explication est plus claire.

  4. #4
    Membre chevronné
    Avatar de tse_jc
    Homme Profil pro
    Data Solutions
    Inscrit en
    Août 2010
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Data Solutions
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 287
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    Ceci devrait faire l'affaire
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    SELECT id, id_profil, date, titre, date 
    FROM MYTABLE 
    WHERE id IN(
       (SELECT CASE WHEN ISNULL(T.id0) THEN T.id2 ELSE T.id1 END AS selectedID 
       FROM
          (SELECT MYTABLE.id AS id0, id_profil, tnext.id AS id1, tprev.id AS id2 
          FROM MYTABLE
          LEFT JOIN 
            (SELECT id FROM MYTABLE 
             WHERE date>NOW() ORDER BY date ASC LIMIT 1) AS tnext ON MYTABLE.id=tnext.id)  
          INNER JOIN
            (SELECT id FROM MYTABLE 
            WHERE date<NOW() ORDER BY date DESC LIMIT 1) AS tprev ON MYTABLE.id=tprev.id
          WHERE MYTABLE.id_profil=X 
          ) AS T 
    )

    ++

Discussions similaires

  1. [DATE] selectionner des dates
    Par hutchuck dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 03/12/2005, 14h11
  2. [DATE] selectionner des dates
    Par hutchuck dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 01/12/2005, 19h42
  3. [MCD] [MCD] Gestion des dates
    Par brionne dans le forum Schéma
    Réponses: 3
    Dernier message: 30/05/2003, 13h01
  4. Réponses: 3
    Dernier message: 19/03/2003, 15h19
  5. Fonctions de manipulation des chaines et des dates
    Par Fares BELHAOUAS dans le forum Débuter
    Réponses: 3
    Dernier message: 09/11/2002, 22h43

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