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

    Estarre record in base al valore più grande di un campo

    Ciao a tutti.
    Ho la necessità di estrarre un tutti i record, ma prestare attenzione al fatto che qualora ve ne siano di identici, venga estratto solo quello che ha il valore di uno dei campi maggiore.
    Ho provato con questa query, che però mi restituisce errore:
    Codice PHP:
    SELECT FROM tabella WHERE campo1 'valore1' AND campo2 'valore2' AND campo3 'valore3' AND campo4 = (SELECT MAX(campo4FROM tabella
    Non so se ho reso l'idea di ciò che voglio fare...

  2. #2
    codice:
    SELECT campo1, campo2, .... , MAX(campo4) AS m_campo4
    FROM tabella
    WHERE ... le tue varie condizioni ...
    GROUP BY campo4
    Nota: e' sempre meglio estrarre esplicitamente i campi che ti servono invece che usare "SELECT *".

  3. #3
    Grazie k.b, non ci avevo pensato.
    Perchè dici che è meglio scrivere tutti i campi che estrai anzichè usare l'asterisco?

  4. #4
    Originariamente inviato da Dirk Pitt
    Perchè dici che è meglio scrivere tutti i campi che estrai anzichè usare l'asterisco?
    Perche' concettualmente e' piu' corretto estrarre quello che ti serve invece che tutto quello che trovi. Per esempio, metti che un giorno modifichi una tabella aggiungendo un campo BLOB che contiene qualche dato grosso: tutto il codice precedentemente scritto che usa quella tabella con "SELECT *" richiedera' al database anche quel nuovo campo senza pero' che gli serva, sprecando inutilmente risorse.

    Oppure il tuo codice si basa sull'ordine dei campi estratti (magari usando mysql_fetch_row() che restituisce un array con indici numerici) e se si intromette un nuovo campo il codice fallisce.

  5. #5
    Non funziona ancora.
    Mi spiego meglio:
    es. ho 20 record, tra di questi ce ne sono che sono identici, tranne un campo che chiamo "variante" e che acquista un valore da 0 a 9.
    Io devo estrarre tutti i record e se ne trovo che sono identici, devo estrarre solo quello in cui variante ha il valore più alto.

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.