Maison >base de données >tutoriel mysql >Comment puis-je trouver des lignes MySQL dont les valeurs sont contenues dans une chaîne de texte donnée ?

Comment puis-je trouver des lignes MySQL dont les valeurs sont contenues dans une chaîne de texte donnée ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-05 17:45:41464parcourir

How Can I Find MySQL Rows Whose Values Are Contained Within a Given Text String?

Recherche de valeurs de ligne contenues dans un texte de requête dans MySQL

L'opérateur LIKE de MySQL excelle dans la localisation des lignes contenant le texte de requête spécifié. Prenons cet exemple :

SELECT name FROM user WHERE name LIKE "%john%"

Des lignes comme John Smith et Peter Johnson seront renvoyées.

Mais que se passe-t-il si nous recherchons le contraire, des lignes dont les valeurs existent dans un texte de requête ? Par exemple, fournir « John Smith et Peter Johnson sont les meilleurs amis » et rechercher tous les noms du tableau présents dans cette chaîne. Comment pouvons-nous accomplir cela ?

Opération LIKE inversée

Pour effectuer cette opération LIKE inversée, l'utilisation de la fonction CONCAT() est essentielle :

SELECT name FROM user 
WHERE 'John Smith and Peter Johnson are best friends' LIKE
  CONCAT('%', name, '%')

La fonction CONCAT() concatène les chaînes, dans ce cas, en enveloppant le nom de chaque ligne entre des signes de pourcentage ("%"). Cela permet à l'opérateur LIKE de vérifier si l'intégralité du texte de la requête contient chaque nom.

Par exemple, si la table utilisateur inclut les noms « John » et « Peter », la requête renverra :

| name |
| --- |
| John |
| Peter |

Cette technique identifie efficacement les lignes qui correspondent à un texte spécifique, inversant ainsi le comportement LIKE traditionnel.

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!

Déclaration:
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