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

    [SQL] condizionare una query: se un dato esiste nella tabella

    ho la seguente query

    SELECT id, cat AS 'Nome Categoria', IF (identifier >1, 'User', 'System') AS 'Tipo Categoria' FROM `"categorie"` ORDER BY identifier DESC"

    tutti gli identifier maggiori di uno vengono rappresentati con la stringa User, tutti gli altri con la stringa System

    è un modo per rappresentare i gruppi utente e sistema nel mio sistema gerarchico di tipi utente

    pero' avrei bisogno di una ulteriore condizione, e cioe' che anche il primo record (cioe', visto l'order by identifier desc quello con identifier piu' alto) debba essere marcato come System

    avevo pensato a qualcosa del tipo: IF (identifier + 1 esiste in questa tabella) allora marca come User, altrimenti marca come System

    (questo in aggiunta all'altra condizione, of coz)

    come si puo' fare in sql?
    Gabriele B. - http://9thcircle.it

  2. #2
    molto semplicemente estrarrei il primo record prima del ciclo while ed assegnerei il valore desiderato direttamente invece di estrarre il valore del campo. Poi proseguirei iniziando il ciclo while.

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

  3. #3
    dimenticavo di definire una importante condizione: nn sono in ambiente php, ma in puro sql
    Gabriele B. - http://9thcircle.it

  4. #4
    Originariamente inviato da TheClue/Nash
    dimenticavo di definire una importante condizione: nn sono in ambiente php, ma in puro sql
    Allora fai due queries...

    Potresti anche metterli con il criterio e ordinamento che ti pare in una tab temporanea oppure con una UNION... son sempre due queries.

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

  5. #5
    potresti postarmi due righe di codice? nn so come si fa quello che mi hai suggerito
    Gabriele B. - http://9thcircle.it

  6. #6
    Originariamente inviato da TheClue/Nash
    potresti postarmi due righe di codice? nn so come si fa quello che mi hai suggerito
    con la union sono due queries unite nulla piu' esempio ( i dati reali mettili tu):
    codice:
    (select id, cat AS 'Nome Categoria', 
    'System' AS 'Tipo Categoria'
    from tab
    order by identifier DESC
    LIMIT 1)
    UNION
    (select ...
    tua query
    ORDER BY identifier DESC
    LIMIT 1, 100)

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

  7. #7
    ottimo!! proprio quello che mi serviva ^^

    many tnx!
    Gabriele B. - http://9thcircle.it

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.