Visualizzazione dei risultati da 1 a 7 su 7

Discussione: MYSQL: aiuto select

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di MySQL
    Registrato dal
    May 2015
    Messaggi
    729
    Quote Originariamente inviata da pegaso22 Visualizza il messaggio
    Ciao a tutti,
    come posso fare una select così:

    selezionare il record con il valore più basso tra campo1,campo2,campo3,campo4,campo5 che sia diverso da 0.00

    Fatemi sapere.
    Grazie mille.
    Io userei un LEAST ed un approccio BigM
    Non mi è chiarissimo se ogni campo-k deve essere diverso da zero, oppure se deve esserlo il minimo.
    Se ho interpretato bene...
    codice:
    select * from tabella
    order by
    least(if(campo1=0,greatest(max(campo1),max(campo2),max(campo3),max(campo4),max(campo5))+1,campo1),if(campo2=0,greatest(max(campo1),max(campo2),max(campo3),max(campo4),max(campo5))+1,campo2),if(campo3=0,greatest(max(campo1),max(campo2),max(campo3),max(campo4),max(campo5))+1,campo3),if(campo4=0,
    greatest(max(campo1),max(campo2),max(campo3),max(campo4),max(campo5))+1,campo4),if(campo5=0,greatest(max(campo1),max(campo2),max(campo3),max(campo4),max(campo5))+1,campo5))
    limit 1
    Vabbè faccio fatica a scrivere la query.
    Comunque la logica è: dato un BigM, che puoi fissare a mano (es. 1000000) se puoi, oppure che puoi
    calcolare come greatest(max(campo1),...max(campon))+1, testi se zero, nel qual caso torni bigm, oppure il campo.
    Fai il least, ordina su questo campo, limit 1 e prendi il minimo
    Ultima modifica di MySQL; 08-05-2015 a 21:58

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.