|
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. |