Home / Database & Server / Database & Server / Operatori IN e BETWEEN in MySQL
Mattepuffo

Operatori IN e BETWEEN in MySQL

Operatori IN e BETWEEN in MySQL

Oggi vi parlo di due importanti operatori di MySQL: IN e BETWEEN.

Per spiegarli al meglio partiamo da questo esempio:

SELECT * FROM author WHERE author_name='clive cussler' OR author_name='stephen king' OR author_name='alessandro cecchi paone';
+-----------+-------------------------+
| author_id | author_name             |
+-----------+-------------------------+
|        46 | alessandro cecchi paone |
|         2 | clive cussler           |
|         3 | stephen king            |
+-----------+-------------------------+

La query restituisce tutti i record che hanno nel campo nome uno dei seguenti valori: clive cussler, stephen king o alessandro cecchi paone.

Bhe non è proprio elegante come query, soprattutto se i valori da ricercare aumentano.

Possiamo ridurre la query usando IN:

SELECT * FROM author WHERE author_name IN('clive cussler', 'stephen king','alessandro cecchi paone');
+-----------+-------------------------+
| author_id | author_name             |
+-----------+-------------------------+
|        46 | alessandro cecchi paone |
|         2 | clive cussler           |
|         3 | stephen king            |
+-----------+-------------------------+

Il risultato è lo stesso, ma la query è più leggibile e anche più veloce.

 

BETWEEN invece serve per cercare dentro un intervallo.

Prendiamo i prezzi:

SELECT price FROM book;
+-------+
| price |
+-------+
| 55.00 |
|  0.00 |
| 69.90 |
|  0.00 |
|  1.00 |
| 42.00 |
| 45.00 |
| 40.00 |
| 45.00 |
|  7.50 |
| 15.00 |
| 12.00 |
|  0.00 |
| 29.90 |
| 13.90 |
|  6.90 |
| 12.90 |
|  0.00 |
|  9.90 |
|  6.90 |
|  7.50 |
|  9.99 |
|  0.00 |
| 13.90 |

...............

Sono tanti e cercare i libri che stanno in un intervallo di prezzo specifico può non essere comodo neanche se ordiniamo il risultato per il campo price.

Possiamo usare BETWEEN per ricercare quelli tra 15 e 45 ad esempio:

SELECT * FROM book WHERE price BETWEEN 15.00 AND 45.00;
+---------+--------------------------------------------------+-----------+-----------+-------+-------------------+--------------------+
| book_id | title                                            | author_id | editor_id | price | isbn              | note               |
+---------+--------------------------------------------------+-----------+-----------+-------+-------------------+--------------------+
|       6 | sviluppare applicazioni web 2.0 con php          |         9 |         1 | 42.00 | 978-88-503-2772-0 |                    |
|       7 | c++ fondamenti di programmazione                 |        10 |         1 | 45.00 | 88-503-2386-7     |                    |
|       8 | javascript la grande guida                       |        11 |         6 | 40.00 | 978-88-6114-014-1 |                    |
|       9 | dreamweaver 8                                    |        12 |         6 | 45.00 | 88-04-54150-4     |                    |
|      19 | java server pages                                |        15 |         8 | 15.00 | 1-56592-746-x     | in inlgese, usato  |
|      28 | guida ai css                                     |        14 |         7 | 29.90 | 978-88-203-3971-5 |                    |
|      41 | php, mysql & javascript                          |         7 |         8 | 39.99 | 978-0-596-15713-5 | in inglese         |
|      42 | apache cookbook                                  |        31 |         8 | 29.90 | 88-481-1652-3     |                    |
|      43 | il linguaggio java - manuale ufficiale           |        32 |        17 | 45.00 | 88-7192-276-x     |                    |
|      45 | costruire siti dinamici con joomla! 1.5          |        33 |         7 | 24.90 | 978-88-203-3713-1 |                    |
|      46 | html, css, xml                                   |        34 |         7 | 22.00 | 88-203-3599-9     |                    |
|      47 | costruisci il tuo sito web                       |        35 |         6 | 19.90 | 88-04-54239-x     |                    |
|      48 | controllo di gestione nelle imprese di alta moda |        37 |        19 | 19.50 | 978-88-464-9608-9 |                    |
|      53 | un solo urlo: roma!                              |        39 |        23 | 16.00 | 978-88-95284-04-0 |                    |
|      54 | la città perduta                                 |         2 |         2 | 19.60 | 978-88-304-2414-2 | con paul kemprecos |
|      55 | il manuale del giovane hacker                    |        40 |        24 | 19.90 | 88-481-2005-9     |                    |
+---------+--------------------------------------------------+-----------+-----------+-------+-------------------+--------------------+

Così abbiamo solo i libri compresi nell'intervallo di prezzo che ci serve.