Mysql in query

Mysql in query
Nel mondo dei database, le query sono una delle cose costanti che tutti implettiamo. Sebbene SQL abbia modi e convenzioni per eseguire domande specifiche, a volte ci richiede di impostare condizioni personalizzate.

Uno degli operatori condizionali popolari e utili in SQL è l'operatore In. Usando l'operatore In, possiamo ottenere un valore booleano se un valore specifico è in un elenco.

Questo tutorial ti guiderà attraverso l'operatore in e come usarlo per creare condizioni personalizzate per le query SQL.
Prima di iniziare, supponiamo che tu abbia un server MySQL installato e configurato sul tuo sistema e hai un database di esempio con cui lavorare su cui lavorare su cui lavorare.

Per ottenere una versione di esempio di un database MySQL, considera il database Sakila dalla risorsa fornita di seguito:

https: // dev.mysql.com/doc/indice-altro.html

Uso di base

Se non hai familiarità, MySQL in istruzione ti consente di determinare se un valore è all'interno di un insieme di valori. Restituisce principalmente un valore booleano con 1 (true) se il valore è nel set e 0 (falso) se il valore non è nel set.

La sintassi generale dell'istruzione In è:

Seleziona column_name da table_name dove (espressione | column_name) in (“value1, value2…)

Come puoi vedere dalla sintassi sopra, l'elenco dei valori è separato con le virgole all'interno dell'operatore In.

È possibile utilizzare un'espressione o un nome di colonna con l'operatore In all'interno dell'istruzione dove.

NOTA: Evita di combinare valori quotati come stringhe e valori non citati come i numeri poiché il confronto differisce per vari tipi. Di seguito è mostrato un esempio di uso non valido della query in in:

Seleziona column_name da table_name dove value1 in ("a", 10, 10);

Una volta eseguita una domanda come quella sopra:

  1. I valori vengono valutati in base al tipo di colonna o al risultato di espressione specificato.
  2. Quindi, i valori vengono ordinati e, infine, una ricerca viene completata utilizzando una ricerca binaria. Ciò garantisce che la ricerca sia veloce con errori minimi.

I valori null restituiscono un valore null.

Esempio di utilizzo

Illustriamo come utilizzare l'operatore in esempi.

Cominciamo con un semplice confronto che non richiede un database. Considera la seguente dichiarazione:

Seleziona 10 pollici (5, 15, 25, 35);

Se esegui la query sopra in una shell MySQL, otterrai 0 (falso), indicando che il valore 10 non è nel set di valori fornito.

mysql> Seleziona 10 pollici (5, 15, 25, 35);
+-----------------------+
| 10 in (5, 15, 25, 35) |
+-----------------------+
| 0 |
+-----------------------+
1 riga in set (0.00 sec)

Il caso è anche vero se il valore che stiamo cercando è nel set. In questo caso, un 1 (vero) viene restituito come illustrato nella query seguente:

Selezionare 35 pollici (5, 15,25,35);

L'output sarà come mostrato di seguito:

MySQL> Seleziona 35 in (5, 15,25,35);
+---------------------+
| 35 in (5, 15,25,35) |
+---------------------+
| 1 |
+---------------------+
1 riga in set (0.00 sec)

Supponiamo di avere una tabella chiamata Film (vedi Database Sakila) con righe come mostrato di seguito:

+----------------------+
| Campo |
+----------------------+
| Film_id |
| Titolo |
| Descrizione |
| Release_year |
| lingua_id |
| originale_language_id |
| Rental_Duration |
| RENTAL_RATE |
| lunghezza |
| sostituzione_cost |
| Valutazione |
| Special_features |
| last_update |
+----------------------+

Usiamo l'operatore In per scoprire i titoli che hanno una durata del noleggio di 3, come mostrato nella query seguente:

Seleziona film_id, title, renta_Duration, valutazione dal film in cui Rental_Duration in (3) limite 5;

Una volta eseguita la query sopra, otterrai tutti i film (limitati a 5) in cui Rental_Duration è uguale a 3. Ecco l'output del campione, come mostrato di seguito:

mysql> Seleziona film_id, title, rent_duration, valutazione dal film in cui renta_douration in (3) limite 5;
+---------+-----------------+-----------------+--------+
| Film_id | Titolo | Rental_Duration | Valutazione |
+---------+-----------------+-----------------+--------+
| 2 | Ace Goldfinger | 3 | PG-13 |
| 6 | Agente Truman | 3 | Pg |
| 9 | Alabama Devil | 3 | PG-13 |
| 17 | Solo viaggio | 3 | R |
| 21 | Circo americano | 3 | R |
+---------+-----------------+-----------------+--------+

Come puoi vedere dall'esempio sopra, possiamo usare l'operatore in per personalizzare il nostro risultato.

Conclusione

Questo tutorial ti ha mostrato come utilizzare e implementare il mysql in operatore per ottenere risultati personalizzati.