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.
mysql between in
Commentami!