Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [MySQL] IFNULL

  1. #1

    [MySQL] IFNULL

    Ho una inner join che funziona alla perfezione, ma mi sarebbe utile cavare fuori un valore di default, nel mio caso uno 0, nel caso in cui la join non tirasse fuori nulla, zero record.

    Ho provato a usare IFNULL, IS NOT NULL, COALESCE, EMPTY e tutte le altre funzioni di MySQL che servono per piazzare un valore di default nel caso un campo sia vuoto/null.
    Quell che accade a me però è l'assenza di record.
    Passando da codice è semplice, ma mi piace di più delegare il lavoro al DB nei limiti del possibile.
    Qualcuno ha suggerimenti per evitare di scrivere una stored o un IF nel codice?
    Sarebbe più gradevole fare tutto in una query secca, anche perchè sono allergico agli IF.

  2. #2
    NULL = non esiste

    zero result set non e' NULL. Direi quindi che con una semplice (ma allergica) if puoi risolvere il tuo problema.

    Conta le righe estratte e se risultano zero metti il tuo default.

    codice:
    $res = mysql_query(....)
    
    if(mysql_num_rows($res) == 0) {
       echo "non esiste trippa per il gatto";
       } else {  ....fai quello che devi ....}

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Originariamente inviato da piero.mac
    NULL = non esiste

    zero result set non e' NULL. Direi quindi che con una semplice (ma allergica) if puoi risolvere il tuo problema.

    Conta le righe estratte e se risultano zero metti il tuo default.

    codice:
    $res = mysql_query(....)
    
    if(mysql_num_rows($res) == 0) {
       echo "non esiste trippa per il gatto";
       } else {  ....fai quello che devi ....}
    Passerò a una meno alergica stored.
    Grazie per il contributo

  4. #4
    che vuol dire: "Quell che accade a me però è l'assenza di record."?

    spiegati meglio, grazie

  5. #5
    Originariamente inviato da optime
    che vuol dire: "Quell che accade a me però è l'assenza di record."?

    spiegati meglio, grazie
    In effetti non mi sono spiegato con un linguaggio da informatici.
    La query può non restituire record.
    num_rows = 0

    Come ha suggerito Piero la cosa è facilmente gestibile con un'istruzione php fatta apposta, ma il mio vezzo era far fare tutto alla query e usare poco codice.

  6. #6
    non c'è modo, pensaci un attimo e te renderai facilmente conto. l'eccezione va per forza gestita da applicativo

  7. #7
    volendo si può fare una query con una union

    query
    UNION
    select 0,0,'',0[ecc] when count query = 0

    se ci sono pochi risultati non incide sulle prestazioni

    cosa dite?

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.