Maison > base de données > tutoriel mysql > Utilisation de MySQL IN

Utilisation de MySQL IN

黄舟
Libérer: 2016-12-27 17:25:38
original
1921 Les gens l'ont consulté

Syntaxe MySQL IN

L'opérateur IN est utilisé dans les expressions WHERE pour prendre en charge plusieurs sélections sous forme d'éléments de liste. La syntaxe est la suivante :

WHERE column IN (value1,value2,...)
WHERE column NOT IN (value1,value2,...)
Copier après la connexion

Lorsque IN est précédé de. Opérateur NOT, cela signifie le sens opposé à IN, c'est-à-dire ne pas sélectionner parmi ces éléments de liste.

Exemple d'utilisation IN

Sélectionnez les données utilisateur avec l'uid 2, 3 et 5 :

SELECT * FROM user WHERE uid IN (2,3,5)
Copier après la connexion

Les résultats de la requête renvoyés sont les suivants :

Utilisation de MySQL IN

Sous-requête IN

Le plus souvent, la valeur de l'élément de liste IN est ambiguë et peut être obtenue via une sous-requête :

SELECT * FROM article WHERE uid IN(SELECT uid FROM user WHERE status=0)
Copier après la connexion

In Dans ce SQL Par exemple, nous avons mis en place la méthode permettant de retrouver tous les articles de tous les utilisateurs dont le statut est 0 (éventuellement banni). Tout d'abord, obtenez tous les utilisateurs avec status=0 via une requête :

SELECT uid FROM user WHERE status=0
Copier après la connexion

Utilisez ensuite le résultat de la requête comme élément de liste de IN pour obtenir le résultat final de la requête. Notez que le résultat renvoyé dans la sous-requête doit être. un champ Liste des éléments.

Instructions supplémentaires de l'opérateur IN

Les éléments de la liste IN prennent non seulement en charge les nombres, mais également les caractères et même les types d'heure et de date, et ces différents types d'éléments de données peuvent être mélangés et organisés sans avoir à suivre le type de colonne. Soyez cohérent :

SELECT * FROM user WHERE uid IN(1,2,'3','c')
Copier après la connexion

Un IN ne peut effectuer une comparaison de plage que sur un seul champ. Si vous souhaitez spécifier plus de champs, vous pouvez utiliser les opérateurs logiques AND ou OR :

SELECT * FROM user WHERE uid IN(1,2) OR username IN('admin','5idev')
Copier après la connexion
.

Utiliser après les opérateurs logiques AND ou OR, IN peut également être utilisé avec d'autres opérateurs tels que LIKE, >=, =, etc.

À propos de l'efficacité de l'opérateur IN

Si les éléments de la liste de IN sont certains, alors plusieurs OR peuvent être utilisés à la place :

SELECT * FROM user WHERE uid IN (2,3,5)
// 等效为:
SELECT * FROM user WHERE (uid=2 OR aid=3 OR aid=5)
Copier après la connexion

On pense généralement que s'il fonctionne sur des champs d'index et que l'utilisation de OR est plus efficace que IN. Cependant, lorsque les éléments de la liste sont incertains (par exemple, les résultats d'une sous-requête sont nécessaires), l'opérateur IN doit être utilisé. De plus, lorsque les données de la table de sous-requête sont plus petites que la requête principale, l'opérateur IN est également applicable.

Ce qui précède est le contenu de l'utilisation de MySQL IN. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal