Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    [mysql] come faccio a trasformare 3 field in un unico flag?

    Salve,
    come da topic, ho tre field booleani che contengono tutti 0 o 1.

    codice:
    +--------+--------+--------+
    | campo1 | campo2 | campo3 |
    +--------+--------+--------+
    |   1    |   0    |   0    |  -> 1
    +--------+--------+--------+
    |   1    |   1    |   0    |  -> 3
    +--------+--------+--------+
    |   1    |   1    |   1    |  -> 7
    +--------+--------+--------+
    come faccio a selezionare i tre campi trasformando l'output in un unico flag?
    nota: se è settato il campo3, sono sempre settati anche il 2 e l'1; se è settato il 2 è sempre settato anche l'1
    わさび

  2. #2
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    non so se è l'unico sistema ma ho risolto sommando più if
    わさび

  3. #3
    non dici di che si tratta. Campi in db, quale risultato dovresti visualizzare? (1 3 7 ??? )


    potresti fare tutto (se sei un db) con un campo tinyint (1) unsigned , usandolo come fosse una bitmap

    001 = 1
    011 = 3
    111 = 7

    leggendo direttamente i valori numerici senza calcolare nulla.

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

  4. #4
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da piero.mac
    non dici di che si tratta. Campi in db, quale risultato dovresti visualizzare? (1 3 7 ??? )


    potresti fare tutto (se sei un db) con un campo tinyint (1) unsigned , usandolo come fosse una bitmap

    001 = 1
    011 = 3
    111 = 7

    leggendo direttamente i valori numerici senza calcolare nulla.
    ciao piero.mac

    si l'output che mi servirebbe è quello, ma non posso modificare i campi del database al momento,
    per cui l'unica strada è quella di mandare in output il risultato delle 3 colonne trattandole come flag
    わさび

  5. #5
    Originariamente inviato da Trinità76
    ciao piero.mac

    si l'output che mi servirebbe è quello, ma non posso modificare i campi del database al momento,
    per cui l'unica strada è quella di mandare in output il risultato delle 3 colonne trattandole come flag
    prova con CASE

    codice:
    SELECT *,
    case when campo3 = 1 then 7
    when campo3 = 0 and campo2 = 1 then 3
    else 1 end
    as result
    from tabella

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

  6. #6
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    grazie 1000
    わさび

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