2010-09-27 3 views
0

Comment trier les données qui étaient stockées dans une base de données mysql en fonction des jours de la semaine où les données ont été soumises?Comment trier les données en fonction du jour où elles ont été publiées?

Je veux essentiellement de créer un journal qui génère des informations chaque jour de la semaine en fonction de ce jour, il a été publié par dates environ,

Mon - Données pour la date mar - mer - etc

Tous les exemples de code et les informations seront excellents, merci.

+0

vous devez choisir une réponse. – oligofren

Répondre

0

Vous pouvez utiliser la fonction DAYOFWEEK pour extraire le jour, puis le trier comme n'importe quelle autre donnée.

0

Quel type de type de données correspond à la colonne dans laquelle vous stockez la date de soumission?

+0

données mises en forme par le tampon date() 2010-09-26 par exemple – Gebsbo

+0

Ok, s'il s'agit d'une colonne de type date, qu'est-ce qui vous empêche d'utiliser une instruction select en utilisant l'ordre de cette colonne? –

0

Il semble que vous demandiez une instruction SELECT de base? Cela suppose que vous ayez réellement une colonne qui enregistre l'horodatage d'insertion.

Si cette réponse est odieusement simpliste, s'il vous plaît pardonnez-moi ... et nous donner plus de détails :)

Cordialement.

1

Vous pouvez faire un

SELECT DAYOFWEEK (datehere) comme dayofweek, datehere de quelque chose ORDER BY dayofweek, datehere;

0

Si vos données sont stockées comme une date ou d'un champ DATETIME, utilisez les fonctions de DAYOFWEEK ou DATE_FORMAT pour le transformer en nom de jour pour la sortie, mais continuer à commander par le champ DATE

SELECT DATE_FORMAT (my_date_column, « % W ') AS dayofweek DE my_table COMMANDER PAR my_date_column

0

Eh bien, le bit de tri est facile, il suffit de trier sur la colonne qui représente la date du poste. Le regroupement en jours est quelque chose que vous pouvez faire dans votre code, puisque vous devez vérifier la date de toute façon (pour le post-traitement de la sortie réelle). En d'autres termes, vous pouvez effectuer une sous-sélection pour obtenir le jour spécifique de la semaine, mais dans votre code, vous devrez vérifier à nouveau le jour pour regrouper les publications par jour. Dans ce cas, il est préférable (et plus propre, puisque vous séparer la logique métier de données) pour le faire dans votre code, quelque chose comme ceci:

  1. sélectionner tous les messages (dans la plage de dates)
  2. faire une associative ensemble, avec les jours que les clés et les messages (nouvelle tableaux) en tant que valeurs
  3. boucle
  4. à travers les jours, puis les messages à émettre les messages par jour
0
SELECT * 
FROM diary_entries 
ORDER BY FIELD(DAYOFWEEK(created), '2, 3, 4, 5, 6, 7, 1'), created 

DAYOFWEEK saisit le numéro du jour de la semaine (1 = dimanche).

FIELD fait lundi le premier jour de la semaine. Après tri par jour de la semaine, trié par date de création.

Questions connexes