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 ?
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!