Boîte à outils HS

La fonction de chaîne FIND_IN_SET dans MySQL pour plus de détails

Étiquettes d'Article: MySQL, FIND_IN_SET
329 2024-12-30 09:53:22

FIND_IN_SET est une fonction de chaîne dans MySQL utilisée pour trouver la position d’une chaîne dans une liste de chaînes séparées par des virgules. Il retourne un nombre entier indiquant la position de la chaîne trouvée (comptée à partir de 1) ou 0 si la chaîne n’est pas dans la liste. Cette fonction est souvent utilisée pour traiter les champs qui sont stockés comme des chaînes séparées par des virgules, bien que cette conception ne soit généralement pas recommandée (il est préférable d’utiliser les avantages d’une base de données relationnelle, comme la création de tables relationnelles beaucoup à beaucoup).


La grammaire

FIND_IN_SET(str, strlist)

STR: chaîne à rechercher.

Strlist: liste contenant plusieurs chaînes séparées par des virgules.


exemples

Supposons qu’il y ait une table nommée utilisateur contenant une colonne de hobbies qui stocke les hobbies de l’utilisateur, séparés par des virgules.

SELECT * FROM users WHERE FIND_IN_SET('eat', hobbies) > 0;


Notes et précautions

Performance: l’utilisation de FIND_IN_SET peut causer des problèmes de performance sur de grands ensembles de données, car elle nécessite une analyse ligne par ligne et l’analyse de chaînes séparées par des virgules.

Index: FIND_IN_SET ne peut pas être utilisé sur un index, ce qui signifie que les requêtes peuvent ne pas être en mesure d’utiliser un index pour accélérer la récupération des données.

Normalisation des données: il est préférable de normaliser ce champ multi-valeur, par exemple en créant une nouvelle table user_hobbies avec les champs user_id et hobby, chaque hobby de chaque utilisateur occupant une ligne. Cela permet d’utiliser les opérations d’union SQL standard et d’utiliser l’indexation pour améliorer les performances des requêtes.

En général, bien que FIND_IN_SET puisse être utile dans certains cas, il est préférable d’éviter d’utiliser des chaînes séparées par des virgules pour stocker plusieurs valeurs lors de la conception de votre base de données et d’adopter plutôt une approche plus normative.


Tous les outils
Liens partenaires
© CopyRight 2018-2025, Tool.hadsky.com
Scanner

OR