Mysql in clausola

Mysql in clausola

Questo tutorial discuterà usando il Mysql in query Per verificare se un valore specifico è all'interno di un insieme di valori, che è utile per sostituire un set di o operatori.

Sintassi di base

IL Mysql in operatore è abbastanza semplice. Funziona controllando se un set ha una corrispondenza per il valore specificato.

La sintassi generale per la query è:

Seleziona col_names da table_name dove espressione in (value_sets);

Nella sintassi sopra, specifichiamo la funzione da svolgere. Può essere un Seleziona, inserisci, elimina, aggiorna, eccetera.

Successivamente, specifichiamo il nome della tabella da cui eseguire l'azione specificata sopra.

La parte successiva è il Dove la clausola, dove specifichiamo l'espressione o il valore per valutare. Questo è il valore che testiamo negli insiemi di valori sul lato destro del Nella clausola.

Sulla mano destra della clausola, specifichiamo i valori da cui cercare l'espressione corrispondente.

Se la Nella clausola Trova una corrispondenza sull'insieme specificato di valori, restituisce un 1, indicando true e uno 0, indicando falso.

Mysql in Clause Esempi

Ecco esempi per illustrare la clausola in:

Esempio 1

Un semplice caso d'uso per il In operatore è verificare un singolo valore all'interno di un set. Ad esempio, possiamo verificare se il personaggio 'UN' è in una serie di personaggi.

Seleziona 'A' in ('a', 'b', 'c', 'd');

Nell'esempio sopra, controlliamo se il personaggio 'UN' È In una serie di personaggi ABCD.

La query sopra dovrebbe restituire 1 se vera, come mostrato nell'output di seguito:

+-----------------------------+
| 'A' in ('a', 'b', 'c', 'd') |
+-----------------------------+
| 1 |
+-----------------------------+
1 riga in set (0.00 sec)

Esempio 2

Un caso simile si applica se il valore non è in un set di valori. Ad esempio, la query seguente restituirà 0 o false.

Seleziona 'Z' in ('a', 'b', 'c', 'd');

Poiché Z non è nel set, l'istruzione restituisce false come mostrato:

+-----------------------------+
| 'Z' in ('a', 'b', 'c', 'd') |
+-----------------------------+
| 0 |
+-----------------------------+

Esempio 3

Illustriamo il In query Con un esempio più pratico. Prendiamo il tavolo degli attore dal Esempio di database Sakila.

Seleziona * dal limite dell'attore 10; +----------+------------+--------------+---------------------+
| Actor_id | first_name | last_name | last_update |
+----------+------------+--------------+---------------------+
| 1 | Penelope | Guiness | 2006-02-15 04:34:33 |
| 2 | Nick | Wahlberg | 2006-02-15 04:34:33 |
| 3 | Ed | Chase | 2006-02-15 04:34:33 |
| 4 | Jennifer | Davis | 2006-02-15 04:34:33 |
| 5 | Johnny | Lollobrigida | 2006-02-15 04:34:33 |
| 6 | Bette | Nicholson | 2006-02-15 04:34:33 |
| 7 | Grace | Mostel | 2006-02-15 04:34:33 |
| 8 | Matthew | Johansson | 2006-02-15 04:34:33 |
| 9 | Joe | Swank | 2006-02-15 04:34:33 |
| 10 | Cristiano | Gable | 2006-02-15 04:34:33 |
+----------+------------+--------------+---------------------+

Nella tabella di esempio sopra, abbiamo le colonne Actor_id, first_name, last_name e last_update.

Possiamo usare il In query per ottenere solo le colonne in cui il nome è un insieme di valori.

Considera la query di seguito:

Seleziona * dall'attore in cui first_name in ("ed", "bette", "grace", "John", "nick");

La query sopra dovrebbe restituire le colonne solo per gli attori specificati. Un risultato di esempio è di seguito:

+----------+------------+-----------+---------------------+
| Actor_id | first_name | last_name | last_update |
+----------+------------+-----------+---------------------+
| 2 | Nick | Wahlberg | 2006-02-15 04:34:33 |
| 3 | Ed | Chase | 2006-02-15 04:34:33 |
| 6 | Bette | Nicholson | 2006-02-15 04:34:33 |
| 7 | Grace | Mostel | 2006-02-15 04:34:33 |
| 44 | Nick | Stallone | 2006-02-15 04:34:33 |
| 136 | Ed | Mansfield | 2006-02-15 04:34:33 |
| 166 | Nick | Degeneres | 2006-02-15 04:34:33 |
| 179 | Ed | Guiness | 2006-02-15 04:34:33 |
| 192 | John | Suvari | 2006-02-15 04:34:33 |
+----------+------------+-----------+---------------------+

Esempio 4

Possiamo anche usare il In operatore Per verificare la presenza di valori numerici. Cambiamo le cose e usiamo la tabella del film da Database Sakila.

Supponiamo di voler ottenere solo i film in cui il Rental_Duration è 7.

Seleziona film_id, title, rent_duration dal film in cui Rental_Duration in (7) limite 5;

La query di esempio sopra dovrebbe restituire le colonne in cui Rental_Duration è uguale a 7.

+---------+------------------+-----------------+
| Film_id | Titolo | Rental_Duration |
+---------+------------------+-----------------+
| 3 | Buchi di adattamento | 7 |
| 27 | Human anonimo | 7 |
| 36 | Argonauts Town | 7 |
| 70 | Bikini mutuatari | 7 |
| 78 | Blackout privato | 7 |
+---------+------------------+-----------------+
5 righe in set (0.00 sec)

Esempio 5 - Negazione

MySQL fornisce anche una negazione per il In operatore. Per usarlo, aggiungi il file Non parola chiave prima del COME:

Selezionare * da table_name dove espressione non in (valori);

Ad esempio, otteniamo i film che non includono la lettera S nel titolo.

Seleziona film_id, title, rent_duration dal film in cui 's' not in (title) limite 5;

Un output di esempio è di seguito:

+---------+------------------+-----------------+
| Film_id | Titolo | Rental_Duration |
+---------+------------------+-----------------+
| 1 | Academy Dinosaur | 6 |
| 2 | Ace Goldfinger | 3 |
| 3 | Buchi di adattamento | 7 |
| 4 | Pregiudizio di affari | 5 |
| 5 | Uovo africano | 6 |
+---------+------------------+-----------------+
5 righe in set (0.00 sec)

In chiusura

In questo articolo, ci siamo concentrati sull'uso Mysql in operatore Per determinare se un valore è all'interno di un insieme di valori. Questo può aiutare a sostituire incatenato O operatori, rendere la query più leggibile e più facile da gestire.