Mysql dans la requête

Mysql dans la requête
Dans le monde des bases de données, les requêtes sont l'une des choses constantes que nous mettons tous. Bien que SQL ait des moyens et des conventions pour effectuer des requêtes spécifiques, il nous oblige parfois à définir des conditions personnalisées.

L'un des opérateurs conditionnels populaires et utiles de SQL est l'opérateur in. En utilisant l'opérateur in, nous pouvons obtenir une valeur booléenne si une valeur spécifique est dans une liste.

Ce tutoriel vous guidera à travers l'opérateur in et comment l'utiliser pour créer des conditions personnalisées pour les requêtes SQL.
Avant de commencer, nous supposons que vous avez un serveur MySQL installé et configuré sur votre système, et que vous avez un exemple de base de données avec laquelle travailler sur.

Pour obtenir un exemple de version d'une base de données MySQL, considérez la base de données Sakila à partir de la ressource fournie ci-dessous:

https: // dev.mysql.com / doc / index-autre.html

Utilisation de base

Si vous n'êtes pas familier, l'instruction MySQL vous permet de déterminer si une valeur se situe dans un ensemble de valeurs. Il renvoie principalement une valeur de type booléen avec 1 (vrai) si la valeur est dans l'ensemble et 0 (false) si la valeur n'est pas dans l'ensemble.

La syntaxe générale de l'instruction In est:

Sélectionnez Column_name dans Table_Name Where (Expression | Column_name) dans («Value1, Value2…)

Comme vous pouvez le voir dans la syntaxe ci-dessus, la liste des valeurs est séparée avec des virgules à l'intérieur de l'opérateur en.

Vous pouvez utiliser une expression ou un nom de colonne avec l'opérateur in à l'intérieur de l'instruction WHERE.

NOTE: Évitez de combiner des valeurs citées telles que des chaînes et des valeurs non citées telles que les nombres car la comparaison diffère pour différents types. Un exemple d'utilisation invalide de la requête in est illustrée ci-dessous:

Sélectionnez Column_name dans Table_Name où Value1 in («A», 10, 10);

Une fois une requête comme celle ci-dessus est exécutée:

  1. Les valeurs sont évaluées en fonction du type de la colonne ou du résultat d'expression spécifié.
  2. Ensuite, les valeurs sont triées, et enfin, une recherche est terminée à l'aide d'une recherche binaire. Cela garantit que la recherche est rapide avec un minimum d'erreurs.

Les valeurs nulles renvoient une valeur nul.

Exemple de cas d'utilisation

Illustrons comment utiliser l'opérateur in à l'aide d'exemples.

Commençons par une comparaison simple qui ne nécessite pas de base de données. Considérez la déclaration suivante:

Sélectionner 10 in (5, 15, 25, 35);

Si vous exécutez la requête ci-dessus dans un shell MySQL, vous obtiendrez 0 (false), indiquant que la valeur 10 n'est pas dans l'ensemble fourni de valeurs.

MySQL> Sélectionner 10 pouces (5, 15, 25, 35);
+-----------------------+
| 10 po (5, 15, 25, 35) |
+-----------------------+
| 0 |
+-----------------------+
1 ligne en jeu (0.00 sec)

Le cas est également vrai si la valeur que nous recherchons est dans l'ensemble. Dans ce cas, un 1 (vrai) est renvoyé comme illustré dans la requête ci-dessous:

Sélectionner 35 po (5, 15,25,35);

La sortie sera comme indiqué ci-dessous:

MySQL> Sélectionner 35 pouces (5, 15,25,35);
+---------------------+
| 35 in (5, 15,25,35) |
+---------------------+
| 1 |
+---------------------+
1 ligne en jeu (0.00 sec)

Supposons que vous ayez un tableau appelé Film (voir la base de données Sakila) avec des lignes comme indiqué ci-dessous:

+----------------------+
| Champ |
+----------------------+
| Film_id |
| Titre |
| Description |
| release_year |
| Langue_id |
| original_language_id |
| Rental_Duration |
| Rental_rate |
| longueur |
| remplacement_cost |
| Note |
| Special_Features |
| last_update |
+----------------------+

Nous utilisons l'opérateur in pour découvrir les titres qui ont une durée de location de 3, comme indiqué dans la requête ci-dessous:

SELECT Film_id, titre, Rental_Duration, note du film où Rental_Duration dans (3) limite 5;

Une fois la requête ci-dessus exécutée, vous obtiendrez tous les films (limités à 5) où la location_duration est égale à 3. Voici l'échantillon de sortie, comme indiqué ci-dessous:

MySQL> SELECT FILM_ID, Title, Rental_Duration, note de Film Where Rental_Duration en (3) Limit 5;
+---------+-----------------+-----------------+--------+
| Film_id | Titre | Rental_Duration | Note |
+---------+-----------------+-----------------+--------+
| 2 | Ace Goldfinger | 3 | PG-13 |
| 6 | Agent Truman | 3 | PG |
| 9 | Alabama Devil | 3 | PG-13 |
| 17 | Trip seul | 3 | R |
| 21 | Cirque américain | 3 | R |
+---------+-----------------+-----------------+--------+

Comme vous pouvez le voir à partir de l'exemple ci-dessus, nous pouvons utiliser l'opérateur in pour personnaliser notre résultat.

Conclusion

Ce tutoriel vous a montré comment utiliser et implémenter l'opérateur MySQL pour obtenir des résultats personnalisés.