【发布时间】:2012-05-02 11:44:13
【问题描述】:
我从 SQLite 数据库中检索了大量数据。检索时,我将其映射到应用程序中的不同视图。我的表中有一个文本字段,我不想从中获取全文,只需要前 n 个字符。因此,例如,如果我的查询是:
Select description from articles where id='29';
那么我如何从描述中获取子字符串?谢谢
【问题讨论】:
我从 SQLite 数据库中检索了大量数据。检索时,我将其映射到应用程序中的不同视图。我的表中有一个文本字段,我不想从中获取全文,只需要前 n 个字符。因此,例如,如果我的查询是:
Select description from articles where id='29';
那么我如何从描述中获取子字符串?谢谢
【问题讨论】:
使用substr 函数。
substr(X,Y,Z) substr(X,Y) substring(X,Y,Z) substring(X,Y)
substr(X,Y,Z)函数返回输入字符串X的子字符串 以Y-th字符开头,长度为Z字符。如果Z是 省略然后substr(X,Y)返回到末尾的所有字符 以Y-th开头的字符串X。X最左边的字符是 数字 1. 如果Y为负数,则子字符串的第一个字符 是通过从右边而不是从左边数来找到的。如果Z是 负数则abs(Z)字符之前的Y-th字符是 回来。如果X是一个字符串,那么字符索引指的是实际 UTF-8 字符。如果X是 BLOB,则索引指的是字节。
substring()是substr()的别名,以 SQLite 版本开头 3.34.
【讨论】:
您可以使用 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
【讨论】:
扩展现有答案,从SQLite 3.34.0开始:
为了与 SQL Server 兼容,substr() SQL 函数现在也可以称为“substring()”。
substring(X,Y) “substring()”是“substr()”的别名,从 SQLite 版本 3.34 开始。
【讨论】: