Maison  >  Article  >  base de données  >  Utilisation de MySQL IN

Utilisation de MySQL IN

黄舟
黄舟original
2016-12-27 17:25:381890parcourir

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

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)

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)

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

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')

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

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)

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) !


Déclaration:
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