Maison > base de données > tutoriel mysql > le corps du texte

Que signifie MySQL ?

藏色散人
Libérer: 2021-11-29 11:59:50
original
5517 Les gens l'ont consulté

mysql in est souvent utilisé dans les expressions Where. Sa fonction est d'interroger des données dans une certaine plage. Sa syntaxe d'utilisation est telle que "select * from which field in (value1, value2, value3,...)".

Que signifie MySQL ?

L'environnement d'exploitation de cet article : système Windows 7, mysql5.7, Dell G3.

mysql dans Qu'est-ce que cela signifie ?

Explication détaillée de l'utilisation de in dans MySQL

1. Utilisation de base

in dans MySQL est souvent utilisé dans les expressions Where, et sa fonction est d'interroger les données à l'intérieur une certaine gamme.

select * from where field in (value1,value2,value3,…)
Copier après la connexion

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

select * from where field not in (value1,value2,value3,…)
Copier après la connexion

2. Sous-requête IN

Dans la plupart des cas, la valeur de l'élément de liste IN est unclear , qui peut être obtenu via une sous-requête :

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

Dans cet exemple SQL, nous avons implémenté la méthode permettant de rechercher tous les articles de tous les utilisateurs dont le statut est 0 (éventuellement banni). Tout d'abord, obtenez tous les utilisateurs avec le statut = 0 via une requête :

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

Utilisez ensuite les résultats de la requête comme éléments de liste de IN pour obtenir les résultats finaux de la requête. Notez que le résultat renvoyé dans la sous-requête doit être un élément de liste de champs.

Nous rencontrons souvent le problème de la faible efficacité des requêtes dans la sous-requête in. La solution est la suivante :

1 Utilisez toujours la sous-requête in et interrogez une fois de plus

SELECT * FROM basic_zdjbxx WHERE suiji IN ( SELECT zdcode FROM ( SELECT zdcode FROM basic_h WHERE zdcode != "" ) AS h )
Copier après la connexion

2. Utilisez LEFT JOIN

SELECT zd.* FROM ( SELECT DISTINCT zdcode FROM basic_h WHERE zdcode != "" ) AS h LEFT JOIN basic_zdjbxx zd ON zd.suiji = h.zdcode
Copier après la connexion

3. opération Instructions supplémentaires

Les éléments de la liste IN prennent en charge non seulement 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 être cohérents avec le type de colonne :

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

One IN ne peut être utilisé pour un Les champs sont comparés dans une plage. 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','manong')
Copier après la connexion

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

4. Concernant l'efficacité de l'opérateur IN

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

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

// L'équivalent est :

SELECT * FROM user WHERE (uid=2 OR aid=3 OR aid=5)
Copier après la connexion

On pense généralement que :

1. Si vous travaillez sur des champs d'index, l'utilisation de OR est plus efficace que IN, mais lorsque les éléments de la liste sont incertains (par exemple, des sous-requêtes sont nécessaires pour obtenir des résultats), vous devez utiliser l'opérateur IN. 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.

2. Lorsque in ou or n'ajoute pas d'index au champ, plus il y a de champs connectés (1 ou 2 ou 3 ou 4 ou...), l'efficacité de la requête de or est bien inférieure à celle de in.

Apprentissage recommandé : "tutoriel vidéo mysql"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

É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