Utilisez la fonction find_in_set de MySQL pour rechercher plusieurs chaînes
La fonction find_in_set() de MySQL vous permet de rechercher une chaîne spécifique dans un ensemble de chaînes stockées dans une colonne. Cependant, il ne peut effectuer une recherche qu'à l'aide d'une seule chaîne de recherche.
Défi : Rechercher à l'aide de plusieurs chaînes
Vous pouvez rencontrer des situations dans lesquelles vous devez rechercher plusieurs chaînes dans un ensemble de chaînes. Par exemple, vous souhaiterez peut-être vérifier si un client a acheté un produit spécifique appartenant à une catégorie spécifique. Dans ce cas, utiliser find_in_set() ne suffit pas.
Astuce pour simuler find_in_set() pour implémenter la recherche multi-chaînes
Il existe une solution de contournement pour simuler une recherche multi-chaînes à l'aide de find_in_set() :
Description de l'expression régulière :
Exemple :
Considérez la requête suivante :
<code class="language-sql">SELECT * FROM table WHERE CONCAT(",", `product_set`, ",") REGEXP ",(electronics|clothing|accessories),";</code>
Dans cette requête, la colonne product_set contient une liste de produits achetés par le client, séparés par des virgules. L'expression REGEXP vérifie si la collection contient l'une de ces trois chaînes de recherche : "électronique", "vêtements" ou "accessoires".
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!