Commenti(0)
Predicato ANY in MySQL
Un guida all'utilizzo del predicato ANY in MySQL
In MYSQL è possibile ricorrere al predicato ANY con le query annidate (http://www.mysqlitalia.it/wiki/Query_annidate_in_MySQL) Con ANY i valori nella colonna specificata vengono confrontati con ciascuno dei valori restituiti della sub-query. La condizione risulta vera se almeno uno dei confronti ha avuto successo. Ad esempio supponiamo di avere la tabella esami così valorizzata
| Matricola | Nome | Anno | Crediti | Voto |
| 1 | Calcolatori Elettronici | 2 | 10 | 30 |
| 1 | Informatica | 2 | 10 | 30 |
| 1 | Matematica | 1 | 10 | 23 |
| 2 | Informatica | 2 | 10 | 30 |
| 2 | Ingegneria del Software | 3 | 10 | 22 |
| 2 | Matematica | 1 | 10 | 27 |
| 10 | Elettronica digitale | 2 | 10 | 20 |
| 10 | Microelettronica | 2 | 10 | 18 |
| 10 | Optoelettronica | 3 | 10 | 26 |
| 84 | Elettronica | 2 | 10 | |
| 84 | Fisica | 2 | 10 | |
| 84 | Matematica | 1 | 10 | 30 |
| 85 | Matematica | 1 | 10 | 30 |
| 85 | Misure | 3 | 10 | |
| 85 | Sicurezza | 2 | 10 | 27 |
E di voler estrarre gli esami in cui voto è maggiore di almeno uno dei voti dell’esame Matematica. La query sarà la seguente:
Il risultato sarà il seguente
| Nome |
| Calcolatori Elettronici |
| Informatica |
| Matematica |
| Optoelettronica |
| Sicurezza |
Come osserviamo non vengono estratti Ingegneria del Software, Elettronica digitale e Microelettronica in quanto il loro voto è inferiore a tutti i voti relativi all’esame matematica, mentre Elettronica, Fisica e Misure noin sono estratti in quanto la colonna Voto per loro non risulta valorizzata. La clausola distinct nella query è utilizzata per non estrarre dati doppi.
Condividi su:
Esprimi un voto:
Argomenti chiave:

MySQL Report un tool di shell per tenere tutto sotto controllo