Méthode : 1. Utilisez "nom de la table où le champ ressemble à '% chaîne%'" pour interroger ; 2. Utilisez "nom de la table où find_in_set (chaîne, champ)" pour interroger ; ,champ)" requête.
L'environnement d'exploitation de ce tutoriel : système windows10, version mysql8.0.22, ordinateur Dell G3.
Résumez les 3 méthodes pour déterminer si une certaine chaîne contient une certaine chaîne dans MySQL.
Prenons d'abord un scénario simple, comme interroger la table utilisateur pour les enregistrements avec yanggb dans le hobby.
Méthode 1 : Utilisez le caractère générique %.
Wildcard est également une correspondance floue, qui peut être divisée en requête floue principale, requête floue finale et requête de correspondance principale totale. Elle convient au scénario consistant à demander si une certaine chaîne contient une autre requête floue. Le scénario d'utilisation de
select * from user where hobby like '%yanggb%';
se limite à trouver les enregistrements de yanggb dans hobby (hobby est constitué de plusieurs valeurs séparées par des virgules), mais pas l'inverse.
Méthode 2 : utilisez la fonction de chaîne find_in_set() fournie par MySQL.
MySQL fournit une fonction de chaîne find_in_set(str1,str2), qui est utilisée pour renvoyer l'index de position de str1 dans str2 S'il est trouvé, il renvoie true (1), sinon il renvoie false (0), où. str2 doit être séparé par des virgules demi-largeur [,].
select * from user where find_in_set('yanggb', hobby);
Lorsque la chaîne correspondante est utilisée comme premier paramètre, le scénario applicable consiste à trouver les enregistrements de yanggb dans hobby (hobby est constitué de plusieurs valeurs séparées par des virgules).
select * from user where find_in_set(hobby, 'yanggb1,yanggb2,yanggb3');
Lorsque la chaîne correspondante est utilisée comme deuxième paramètre, le scénario applicable consiste à rechercher des enregistrements avec l'un des yanggb1, yanggb2 et yanggb3 dans hobby (hobby est une valeur unique).
Méthode 3 : utilisez la fonction de chaîne Locate() fournie par MySQL.
MySQL fournit également une fonction de fonction de chaîne Locate(substr, str), qui est utilisée pour renvoyer l'index de position de substr dans str. S'il est trouvé, il renvoie un nombre supérieur à 0, sinon il renvoie 0.
select * from user where locate('yanggb', hobby) > 0;
Les scénarios applicables sont similaires à la fonction find_in_set(). La seule différence entre les deux fonctions est la valeur de retour.
Apprentissage recommandé : Tutoriel vidéo mysql
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!