Comment rechercher plusieurs valeurs dans le même champ dans SQL
Lors de la construction d'un algorithme de recherche, il est souvent nécessaire de briser une chaîne dans ses composants et rechercher chaque partie individuellement. Ceci est particulièrement utile lorsque vous traitez des termes de recherche séparés par des espaces.
pour y parvenir dans SQL, on pourrait envisager d'utiliser l'opérateur similaire avec un wildcard pour correspondre à tous 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 comme plusieurs et peut entraîner des problèmes de performances.
, 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 des produits qui contiennent "Sony" ou "TV" dans leur nom:
SELECT name FROM Products WHERE name IN ('Sony', 'TV');
Pour rechercher plusieurs valeurs séparées par des espaces, cassez simplement la chaîne en 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], ... );
Alternativement, vous pouvez utiliser ou avec l'opérateur similaire comme indiqué ci-dessous:
SELECT name FROM Products WHERE name LIKE '%$search[0]%' OR name LIKE '%$search[1]%' OR ...;
Cependant, il est important de noter que l'utilisation ou nécessite au moins une condition pour être vraie, tandis que toutes les conditions sont vraies.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3