Maison >base de données >tutoriel mysql >Comment diviser efficacement les valeurs séparées par des virgules dans SQLite ?

Comment diviser efficacement les valeurs séparées par des virgules dans SQLite ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-03 11:00:39925parcourir

How to Efficiently Split Comma-Separated Values in SQLite?

Diviser les valeurs séparées par des virgules dans SQLite

Lorsque vous travaillez avec des données contenant des valeurs séparées par des virgules, il peut être nécessaire d'extraire des composants individuels. Dans SQLite, utiliser des fonctions comme Replace() et Trim() pour y parvenir peut s'avérer fastidieux. Voici une approche plus efficace utilisant une expression de table commune (CTE).

Solution :

Étape 1 : Définir le CTE

WITH split(word, csv) AS (
  SELECT '', 'Auto,A,1234444'||','
  UNION ALL SELECT
    substr(csv, 0, instr(csv, ',')),
    substr(csv, instr(csv, ',') + 1)
  FROM split
  WHERE csv != ''
)
  • SELECT : initialise le mot et le csv colonnes.
  • UNION ALL : divise de manière récursive les valeurs csv par des virgules.
  • WHERE csv != '' : termine la récursion lorsqu'il n'y a plus de valeurs à diviser.

Étape 2 : Extrayez le Valeurs

SELECT word FROM split WHERE word!='';
  • Filtre les première et dernière lignes (valeurs factices/terminales).
  • Extrait les valeurs divisées dans la colonne de mots.

Sortie :

Auto
A
1234444

Cette solution offre un moyen simple et efficace de diviser valeurs séparées par des virgules dans SQLite, même lorsque la longueur des chaînes varie.

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