Maison > base de données > tutoriel mysql > Comment rechercher efficacement plusieurs valeurs dans un seul champ en SQL ?

Comment rechercher efficacement plusieurs valeurs dans un seul champ en SQL ?

Linda Hamilton
Libérer: 2024-10-29 02:55:02
original
981 Les gens l'ont consulté

  How to Efficiently Search for Multiple Values within a Single Field in SQL?

Comment rechercher plusieurs valeurs dans le même champ en SQL

Lors de la construction d'un algorithme de recherche, il est souvent nécessaire de casser une chaîne dans ses composants et recherchez chaque pièce individuellement. Ceci est particulièrement utile lorsqu'il s'agit de termes de recherche séparés par des espaces.

Pour y parvenir en SQL, on peut envisager d'utiliser l'opérateur LIKE avec un caractère générique pour faire correspondre les caractères avant et après chaque terme de recherche. Cependant, cette approche n'est pas très efficace, car elle nécessite plusieurs clauses LIKE et peut entraîner des problèmes de performances.

Au lieu de cela, une solution plus efficace consiste à utiliser l'opérateur IN. L'opérateur IN vous permet de rechercher des valeurs qui correspondent à l'une des valeurs spécifiées dans une liste. Par exemple, la requête suivante recherche les produits dont le nom contient « Sony » ou « TV » :

SELECT name FROM Products WHERE name IN ('Sony', 'TV');
Copier après la connexion

Pour rechercher plusieurs valeurs séparées par des espaces, divisez simplement la chaîne dans un tableau et utilisez l'opérateur IN comme suit :

$search = "Sony TV with FullHD support";
$search = explode(' ', $search);

SELECT name
FROM Products
WHERE name IN (
    $search[0],
    $search[1],
    ...
);
Copier après la connexion

Vous pouvez également utiliser OR avec l'opérateur LIKE comme indiqué ci-dessous :

SELECT name
FROM Products
WHERE name LIKE '%$search[0]%' OR
      name LIKE '%$search[1]%' OR
      ...;
Copier après la connexion

Cependant, il est important de noter que l'utilisation de OR nécessite au au moins une condition doit être vraie, tandis que AND exige que toutes les conditions soient vraies.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal