Maison > base de données > tutoriel mysql > Méthode MySQL pour déterminer si un champ contient une chaîne

Méthode MySQL pour déterminer si un champ contient une chaîne

藏色散人
Libérer: 2020-02-07 09:43:04
original
29120 Les gens l'ont consulté

Méthode MySQL pour déterminer si un champ contient une chaîne

Méthode MySQL pour déterminer si un champ contient une chaîne

Méthode 1 : like

SELECT * FROM nom de la table WHERE nom du champ comme "% caractère %";

Méthode 2 : find_in_set()

Utiliser la chaîne mysql Fonction find_in_set ();

SELECT * FROM users WHERE find_in_set('字符', 字段名);
Copier après la connexion

C'est bon, comment tu comprends ça ?

MySQL a de nombreuses fonctions de chaîne. La fonction find_in_set(str1,str2) renvoie l'index de position de str1 dans str2 qui doit être séparé par ",".

Remarque : Lorsque str2 est NO1 : "3,6,13,24,33,36", NO2 : "13,33,36,39", déterminez si le champ str2 dans les deux données contient ' 3', cette fonction peut parfaitement résoudre

mysql > SELECT find_in_set()('3','3,6,13,24,33,36') as test;
-> 1
mysql > SELECT find_in_set()('3','13,33,36,39') as test;
-> 0
Copier après la connexion

Troisième méthode : localiser (caractère, nom du champ)

Utiliser localiser (caractère, nom du champ ), si elle est incluse, renvoie un nombre >0, sinon renvoie 0.

Son alias est la position dans

select * from 表名 where locate(字符,字段)
select * from 表名 where position(字符 in 字段);
Copier après la connexion

Exemple : Déterminez si l'URL dans la table du site contient 'http:/ /' sous-chaîne, si elle n'est pas incluse, elle sera épissée au début de la chaîne url

update site set url =concat('http://',url) where locate('http://',url)=0
Copier après la connexion

Notez que le signe plus + ne peut pas être utilisé pour épisser des chaînes dans mysql, utilisez la fonction concat

Méthode 4 : INSTR (champ, caractères)

sélectionnez * dans le nom de la table où INSTR (champ, caractères)

De plus, l'auteur a vérifié le plan d'exécution du SQL ci-dessus ( (hors find_in_set), j'ai trouvé qu'ils sont tous :

Méthode MySQL pour déterminer si un champ contient une chaîne

On dit sur Internet qu'en utilisant Locate car la requête floue est rapide. Je ne sais pas comment la conclusion est arrivée. Cela peut être dû à la grande quantité de données.

(Tutoriel vidéo d'apprentissage gratuit 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal