web-dev-qa-db-fra.com

Comment obtenir une sous-chaîne dans SQLIte?

Je récupère beaucoup de données de la base de données SQLite. Lors de la récupération, je le mappe à différentes vues de mon application. Il y a un champ de texte dans ma table dont je ne veux pas obtenir le texte complet, juste les n premiers caractères. Donc, si ma requête par exemple est:

Select description from articles where id='29';

Alors, comment puis-je obtenir la sous-chaîne de la description? Merci

46

Utilisez la fonction substr.

De la liste des fonctions de base :

substr(X,Y,Z)
substr(X,Y)

La fonction substr(X,Y,Z) renvoie une sous-chaîne de la chaîne d'entrée X qui commence par le caractère Y- et qui est longue de Z caractères. Si Z est omis, alors substr(X,Y) renvoie tous les caractères jusqu'à la fin de la chaîne X commençant par le Y-ème. Le caractère le plus à gauche de X est le numéro 1. Si Y est négatif, le premier caractère de la sous-chaîne est trouvé en comptant à partir de la droite plutôt que de la gauche. Si Z est négatif, les caractères abs(Z) précédant le Y- ème caractère sont retournés. Si X est une chaîne, les indices de caractères se réfèrent aux caractères UTF-8 réels. Si X est un BLOB, alors les indices se réfèrent à des octets.

72
Dan D.

Pour obtenir la sous-chaîne dans SQLite

Vous pouvez utiliser la fonction intégrée dans SQLite qui est substr(X,Y,Z). Le champ x représente l'entrée de chaîne à découper, les champs y et z représentent respectivement le point de départ et le point d'arrivée à l'aide d'un index.

===============================
|Database Table : **articles**|
===============================
|id | description             |
-------------------------------
|29 | Lorem ipsum domit       |
===============================

Nous allons maintenant essayer de faire une requête de sélection pour notre description

SELECT substr(description,1,4) FROM articles where id='29';

La sortie serait: Lore au lieu de Lorem ipsum domit

16
Enzokie