Maison > base de données > tutoriel mysql > Comment puis-je diviser efficacement les valeurs séparées par des virgules dans SQLite à l'aide de CTE ?

Comment puis-je diviser efficacement les valeurs séparées par des virgules dans SQLite à l'aide de CTE ?

Mary-Kate Olsen
Libérer: 2025-01-04 03:12:11
original
154 Les gens l'ont consulté

How Can I Efficiently Split Comma-Separated Values in SQLite Using CTEs?

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

Une approche alternative pour travailler avec des chaînes séparées par des virgules dans SQLite consiste à exploiter les expressions de table communes (CTE). ). Les CTE fournissent un moyen de décomposer efficacement la chaîne en valeurs individuelles.

Mise en œuvre étape par étape :

  1. Créer un CTE : Commencez par définir un CTE nommé split qui accepte deux paramètres : word pour contenir les valeurs individuelles et csv pour stocker les valeurs séparées par des virgules. string.
  2. Requête initiale : Dans la requête initiale du CTE, vous spécifierez la chaîne CSV, en concaténant une virgule supplémentaire pour indiquer sa fin.
  3. Requête récursive : La requête récursive utilise substr() et instr() pour extraire le premier mot jusqu'à la virgule suivante et mettre à jour le csv pour supprimer la partie analysée. Ce processus se répète jusqu'à ce qu'il n'y ait plus de virgules.
  4. Sélectionnez le résultat : Enfin, sélectionnez la colonne de mots du CTE, à l'exclusion de la première et de la dernière lignes, qui représentent la chaîne CSV brute et tout texte vide résiduel.

Exemple :

Voici un exemple de code pour illustrer l'approche 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 word FROM split 
WHERE word!='';
Copier après la connexion

Sortie :

Auto
A
1234444
Copier après la connexion

Cette méthode offre un moyen concis et efficace de diviser des chaînes séparées par des virgules dans SQLite, vous permettant d'accéder à des chaînes individuelles valeurs en toute simplicité.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal