49

我从 SQLite 数据库中检索了很多数据。检索时,我将其映射到应用程序中的不同视图。我的表格中有一个文本字段,我不想从中获取全文,只需要前 n 个字符。因此,例如,如果我的查询是:

Select description from articles where id='29';

那么如何从描述中获取子字符串?谢谢

4

3 回答 3

73

使用该substr功能。

核心功能列表中

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

该函数返回一个以字符开头且长度为字符substr(X,Y,Z)的输入字符串的子字符串。如果省略,则返回以 .开头的字符串末尾的所有字符。的最左边的字符是数字 1。如果为负数,则通过从右侧而不是从左侧计数来找到子字符串的第一个字符。如果为负数,则返回字符前面的字符。如果是字符串,则字符索引指的是实际的 UTF-8 字符。如果是 BLOB,则索引指的是字节。XY-thZZsubstr(X,Y)XY-thXYZabs(Z)Y-thXX

substring()substr()从 SQLite 版本 3.34 开始的别名。

于 2012-05-02T11:49:02.157 回答
19

在 SQLite 中获取子字符串

您可以使用 SQLite 中的内置函数,即substr(X,Y,Z). x 字段表示要切片的字符串输入,y 字段表示使用索引的起点,z 字段表示子字符串长度。

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

现在我们将尝试为我们的描述进行选择查询

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

输出将是:Lore而不是 Lorem ipsum domit

于 2015-09-10T04:30:42.667 回答
1

要扩展现有答案,从SQLite 3.34.0开始:

为了与 SQL Server 兼容,substr() SQL 函数现在也可以称为“substring()”。

substring(X,Y) “substring()”是“substr()”的别名,从 SQLite 版本 3.34 开始。

于 2020-12-05T08:33:53.793 回答