Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di henry78
    Registrato dal
    May 2001
    Messaggi
    1,264

    dubbio su query distinct

    $query = "SELECT DISTINCT campo1 FROM tab_zona WHERE id = 5 ORDER BY campo2 ASC ";

    Questa query non funziona perchè è richiesto che si debbano specificare tutti i campi così:

    $query = "SELECT DISTINCT campo1, id, campo2 FROM tab_zona WHERE id = 5 ORDER BY campo2 ASC ";

    Oppure esiste un modo per estrarre in modo distinct un solo campo da una query di questo tipo?

  2. #2
    Codice PHP:
    SELECT DISTINCT (campo1) AS campo1 FROM tab_zona WHERE id 5 ORDER BY campo2 ASC 

  3. #3
    Di solito il campo id è la chiave primaria di una tabella e in quanto tale non può assumere più di una volta uno stesso valore.
    Perciò se id è la chiave primaria la query dovrebbe essere:
    $query = "SELECT campo1 FROM tab_zona WHERE id = 5";

    Se quello che ho scritto non ti funziona dimmi qual'è la struttura della tabella.

  4. #4
    Mi correggo:
    Codice PHP:
    SELECT DISTINCT (campo1) AS campo1campo2 FROM tab_zona WHERE id 5 ORDER BY campo2 ASC 

  5. #5
    scusa Dirk Pitt puoi spiegare anche perchè?

  6. #6
    Originariamente inviato da Saretta883
    scusa Dirk Pitt puoi spiegare anche perchè?
    Perchè senza estrazione del campo2, l'ordinamento non avviene.

  7. #7
    In mysql??? Perchè io l'ho provato proprio adesso con oracle e funziona benissimo

  8. #8
    In MySql senza l'estrazione del campo per cui si richiede l'ordinamento, non si ottiene l'ordinamento stesso.
    Su Oracle non so

  9. #9
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    anche in MySql non è necessario estrarre il campo dell'ordinamento

  10. #10
    Originariamente inviato da bstefano79
    anche in MySql non è necessario estrarre il campo dell'ordinamento
    Però se non lo estrai stranamente la query
    Codice PHP:
    SELECT DISTINCT (campo1) AS campo1 FROM tab_zona WHERE id 5 ORDER BY campo2 ASC 
    restituisce i record non ordinati come invece fa la query
    Codice PHP:
    SELECT DISTINCT (campo1) AS campo1campo2 FROM tab_zona WHERE id 5 ORDER BY campo2 ASC 

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.