Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329

    MySQL: come inzializzare ad 1 il record di una colonna se questo non esiste?

    Salve, vorrei sapere come dare il valore ad un record, di una colonna, estrapolato da "MAX(nome_colonna)+1" se "MAX(nome_colonna)" è NULL?

    Tale valore è un numero che incrementa sempre, se nell'anno vigente, con il cambio dell'anno, quindi ad esempio con l'arrivo dell'anno nuovo dovrebbe azzerarsi e quindi il primo valore dovrebbe valere 1.

    tabella:
    numero - timestamp

    records:
    10 - 2012-04-04
    11 - 2012-04-04
    12 - 2012-04-04
    13 - 2012-04-15
    14 - 2012-06-21
    >> '1' - 2013-07-04 <<

    Grazie
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  2. #2
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329
    Ok risolto co nla funzione (COALESCE(MAX(numero),0)+1)
    Dove COALESCE restituisce il primo valore non NULLO e se sono solo valori nulli restituisce NULL a meno che non venga settato un valore di default in caso di NULL, quindi
    se MAX(numero) da NULL con COALESCE(MAX(numero),0) restituirà 0.
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  3. #3
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Scusate non avevo notato che Donovant si era gia risposto da solo.


    pertanto ho sovrascritto la mia risposta
    che era peraltro simile a quella di Donovant

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 © 2026 vBulletin Solutions, Inc. All rights reserved.