Maison  >  Article  >  base de données  >  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

藏色散人
藏色散人original
2020-02-07 09:43:0429074parcourir

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('字符', 字段名);

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

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 字段);

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

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!

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