Maison >base de données >tutoriel mysql >Explication détaillée des fonctions de chaîne dans MySQL

Explication détaillée des fonctions de chaîne dans MySQL

零下一度
零下一度original
2017-07-17 11:01:441399parcourir

J'ai vu une question sur MySQL dans le forum aujourd'hui. La question est la suivante

good_id cat_id
12654 665,569
12655 601,4722

goods_id est l'identifiant du produit.
cat_id est l'identifiant de la catégorie
Comment puis-je vérifier les données basées sur cet identifiant de catégorie (un produit a plusieurs catégories, séparées par des virgules)
J'utilise actuellement like Dans ce cas, saisir un identifiant de catégorie est. Ce produit peut être trouvé en saisissant 688 ou 4722, mais ce produit peut également être trouvé en saisissant 722.

Si vous utilisez like, il y aura certainement des problèmes. Mon idée initiale est de remplacer la chaîne dans cat_id par un tableau, afin que l'opération in dans mysql puisse être utilisée dans cela. De cette manière, la recherche 722 n'apparaîtra pas et tous les produits de la catégorie 4722 apparaîtront. J'ai longtemps cherché sur Internet et je n'ai trouvé aucune fonction de manipulation de chaîne dans ce domaine. Cependant, j'ai découvert que même si la fonction find_in_set ne peut pas convertir une chaîne en tableau, la situation ci-dessus ne se produira pas. J'ai découvert qu'il y avait de nombreuses fonctions que je ne connaissais pas, j'ai donc longuement collecté quelques exemples dans le manuel et sur Internet.

CHAR_LENGTH(str) Renvoie le nombre de caractères dans str

LENGTH(str) Renvoie la longueur en octets de str

CONCAT(str1,str2....) renvoie la concaténation des paramètres str1, str2...., s'il y a une valeur nulle, null

CONCAT_WS (x, str1, str2...) ---concat avec séparateur Le premier paramètre x représente le séparateur, et les paramètres suivants sont la chaîne

Si x est NULL, NULL est renvoyé. Si la chaîne a NULL Sera ignoré

INSERT(s1,x,len,s2) remplacement de chaîne s1 chaîne cible x est la position de départ de s1 (l'indice commence à partir de 1) len est La longueur s2 après x est la chaîne qui doit être remplacée

Si x dépasse l'indice de longueur de s1, renvoie s1. Si len est supérieur à la longueur de chaîne restante après x, remplacez tout <.>

LOWER(str), LCASE(str) les chaînes sont converties en minuscules

UPPER(str), UCASE( str) les chaînes sont converties en

LEFT(str,n) renvoie les n caractères les plus à gauche de la chaîne str

RIGHT(str ,n) Renvoie les n caractères les plus à droite de la chaîne str

LPAD(s1,len,s2) Renvoie s2 complété à partir du côté gauche de s1 jusqu'au total length est len, si len

RPAD(s1, len,s2) Renvoie s2 et est rempli à partir de la droite de s1 jusqu'à la longueur de len, si len

LTRIM(S) supprime les espaces à gauche RTRIM(s) Supprime les espaces à droite TRIM(s) Supprime les espaces des deux côtés

TRIM(s1 FROM s2) Supprime la chaîne s1 apparaissant aux deux extrémités de s2

REPEAT(s,n) renvoie une chaîne composée de n s, n< =0, renvoie vide ; s ou n est NULL, renvoie NULL

SPACE(n) Renvoie n chaînes d'espace

REPLACE(s,s1,s2) Returns - remplacez s par s2 Le résultat de toutes les chaînes s1

STRCPM(s1,s2) s1==s2 renvoie 0 s1< ;s2 renvoie -1 s1>s2 renvoie 1

SUBSTRING(s,n,len), MID(s,n,len) renvoie une chaîne de longueur len à partir de n. Si n<0, cela commence à partir de la dernière réciproque de s. Commencez à intercepter n caractères. Si n=0, une chaîne vide sera renvoyée ; len peut être omise - tous les caractères après n seront interceptés

.

LOCATE(str1, str2), POSITION(str1 IN str2), INSTR(str2, str1) Renvoie la position de départ de str1 dans str2

REVERSE(s) Renvoie l'inverse de la chaîne de s

ELT(n,str1,str2, str3 ...) Renvoie la nième chaîne dans str1, str2.., si n dépasse return null

FIELD(s,str1,str2,str3.. ..) Renvoie la position de la première occurrence de s dans str1, str2...., sans renvoyer 0

FIND_IN_SET(s,str1) Renvoie s dans La position d'occurrence dans str1 , où str1 se compose de plusieurs chaînes, une liste séparée par des virgules

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