Maison >base de données >tutoriel mysql >Comment effectuer une correspondance exacte et une correspondance floue des données dans MySQL ?
Comment effectuer une correspondance exacte et une correspondance floue des données dans MySQL ?
MySQL est un système de gestion de bases de données relationnelles largement utilisé. Lors de l’exécution de requêtes de données, nous devons souvent effectuer une correspondance exacte ou une correspondance floue. Cet article expliquera comment exécuter ces deux méthodes de correspondance dans MySQL et fournira des exemples de code correspondants.
La correspondance exacte fait référence à l'exigence selon laquelle les résultats de la requête doivent correspondre exactement aux données des conditions données. Habituellement, le signe égal "=" est utilisé pour une correspondance exacte. Voici un exemple simple :
SELECT * FROM students WHERE name = 'John';
Le code ci-dessus renverra les informations sur l'étudiant nommée "John". Ici, « nom » est un nom de colonne dans le tableau et « John » est la valeur à laquelle nous voulons correspondre. Seules les lignes avec la valeur « John » dans la colonne « nom » seront renvoyées.
En plus d'utiliser le signe égal, nous pouvons également utiliser d'autres opérateurs de comparaison pour une correspondance exacte, tels que "6745434bf92a2979d589ede8e8e7bea9", "e9385be0336c06a04f8e3fbe2c643e89=", etc. Voici un exemple :
SELECT * FROM products WHERE price > 50;
Le code ci-dessus renverra des informations sur le produit avec un prix supérieur à 50. Ici, « prix » est un nom de colonne dans le tableau et 50 est la valeur à laquelle nous voulons correspondre. Seules les lignes ayant une valeur supérieure à 50 dans la colonne « prix » seront renvoyées.
La correspondance floue signifie que les résultats de la requête peuvent correspondre partiellement aux conditions données. Les caractères génériques sont souvent utilisés pour la correspondance floue. Les caractères génériques courants dans MySQL incluent "%" et "_". "%" représente n'importe quelle longueur de caractères, "_" représente un caractère. Voici un exemple :
SELECT * FROM users WHERE email LIKE '%@gmail.com';
Le code ci-dessus renverra toutes les informations utilisateur utilisant les boîtes aux lettres Gmail. Ici, « email » est un nom de colonne dans le tableau et « %@gmail.com » est la valeur à laquelle nous voulons correspondre. Seules les lignes dont les valeurs dans la colonne « email » se terminent par « @gmail.com » seront renvoyées.
Nous pouvons également utiliser plusieurs caractères génériques pour une correspondance floue complexe. Voici un exemple :
SELECT * FROM customers WHERE phone_number LIKE '180%5_';
Le code ci-dessus renverra les informations du client dont le numéro de téléphone portable commence par "180" et l'avant-dernier chiffre est "5". Ici, « phone_number » est un nom de colonne dans le tableau et « 180%5_ » est la valeur à laquelle nous voulons correspondre. Seules les lignes dont les valeurs dans la colonne « phone_number » remplissent les conditions ci-dessus seront renvoyées.
Il convient de noter que la correspondance floue est généralement moins efficace que la correspondance exacte, car le moteur de requête doit effectuer une correspondance de modèles sur chaque ligne. Par conséquent, lorsque vous effectuez une correspondance floue, essayez d'éviter d'utiliser une correspondance floue avant les caractères génériques pour améliorer l'efficacité des requêtes.
Pour résumer, la correspondance exacte et la correspondance floue sont des méthodes de correspondance de données couramment utilisées dans MySQL. En utilisant des opérateurs et des caractères génériques appropriés, nous pouvons effectuer une correspondance exacte ou floue en fonction de besoins spécifiques. Ces méthodes de correspondance sont très pratiques dans les requêtes quotidiennes des bases de données et peuvent nous aider à obtenir avec précision les données dont nous avons besoin.
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!