Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [MySQL] Ordinare risultati per data ascendente

    Database MySql, phpmyadmin.

    In una tabella di nominativi con un campo timestamp (data_approvazione) vorrei poter ordinare i risultati in base alla data ascendente (cioè prima tutti i record con data più vecchia). Il problema è che non in tutti i record il campo data è impostato e quindi ha come valore quello che ho come predefinito (0000-00-00 00:00:00) e con questa
    select * from schede order by data_approvazione asc
    ottengo prima tutti i record con il campo data_approvazione di default, invece vorrei che quest'ultimi fossero elencati sotto gli altri dove invece il campo data_approvazione è stato inserito.

    Devo utilizzare un valore predefinito diverso oppure c'è un'espressione per ORDER BY tipo IS NOT NULL?
    Grazie per l'aiuto.

  2. #2
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955

    Re: [MySQL] Ordinare risultati per data ascendente

    Originariamente inviato da davidet80
    Database MySql, phpmyadmin.

    In una tabella di nominativi con un campo timestamp (data_approvazione) vorrei poter ordinare i risultati in base alla data ascendente (cioè prima tutti i record con data più vecchia). Il problema è che non in tutti i record il campo data è impostato e quindi ha come valore quello che ho come predefinito (0000-00-00 00:00:00) e con questa
    select * from schede order by data_approvazione asc
    ottengo prima tutti i record con il campo data_approvazione di default, invece vorrei che quest'ultimi fossero elencati sotto gli altri dove invece il campo data_approvazione è stato inserito.

    Devo utilizzare un valore predefinito diverso oppure c'è un'espressione per ORDER BY tipo IS NOT NULL?
    Grazie per l'aiuto.
    Le scelte sono due:
    1. Cambia il valore di default
    2. prova con questa query (anche se non so se MySql ti sostiene)

    SELECT *
    FROM schede
    order by
    case when data_approvazione = VALORE_DI_DEFAULT THEN '2'
    else '1'
    end asc, data_approvazione desc

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.