sqlite包含基本文本功能,例如instr
,substr
和replace
(甚至在以后的版本中,甚至是trim
),这可以使您远。但是我一直想要一个更完整的集合,例如Postgresql,Python或Go中的一套。
因此,我已经创建了一个sqlean-text
扩展程序,可提供25个字符串函数,从slice
,contains
和count
到split_part
,translate
和translate
。
注意。与其他DBM不同,向SQLITE添加扩展是轻而易举的。下载一个文件,运行一个数据库命令 - 您很高兴去。
许多函数与后Gostgres兼容(即它们具有与PostgreSQL中相同的别名和逻辑)。从sqlite迁移到postgresql,反之亦然。
sqlite已经具有一些文本功能,但是使用完整集的功能要好得多。
请注意,某些与Unicode相关的功能(例如upper
和lower
)在单独的unicode扩展中。正则表达功能在单独的regexp扩展中。
子字符串和切片
text_substring(str, start [,length])
从start
位置开始提取length
字符的子字符串。
text_slice(str, start [,end])
从start
位置提取一个子字符串,包括end
位置非包容。
text_left(str, length)
从字符串的开头提取length
字符的子字符串。
text_right(str, length)
从字符串的末端提取length
字符的子字符串。
搜索和匹配
text_index(str, other)
返回原始字符串中other
子字符串的第一个索引。
text_last_index(str, other)
返回原始字符串中other
子字符串的最后一个索引。
text_contains(str, other)
检查字符串是否包含other
子字符串。
text_has_prefix(str, other)
检查字符串是否以other
子字符串开头。
text_has_suffix(str, other)
检查字符串是否以other
子字符串结束。
text_count(str, other)
计算原始字符串中包含的other
子字符串多少次。
分开并加入
text_split(str, sep, n)
通过分隔符将字符串拆分并返回第n部分。
text_concat(str, ...)
串联字符串。
text_join(sep, str, ...)
使用分离器加入字符串。
text_repeat(str, count)
将字符串与给定的次数连接在一起。
修剪和垫子
text_ltrim(str [,chars])
从字符串的开头修剪某些字符。
text_rtrim(str [,chars])
从字符串的末端修剪某些字符。
text_trim(str [,chars])
从字符串的开头和末端修剪某些字符。
text_lpad(str, length [,fill])
通过准备某些字符,将字符串粘贴到指定的长度上。
text_rpad(str, length [,fill])
通过附加某些字符将字符串粘贴到指定的长度上。
其他修改
text_replace(str, old, new [,count])
用原始字符串中的new
子来代替old
子字符串,但不超过count
次。
text_translate(str, from, to)
替换了将from
中一个字符与to
集中的相应字符匹配的每个字符串字符。
text_reverse(str)
逆转字符串中字符的顺序。
字符串属性
text_length(str)
返回字符串中的字符数。
text_size(str)
返回字符串中的字节数。
text_bitsize(str)
返回字符串中的位数。
安装和用法
-
与sqlite命令行接口一起使用:
sqlite> .load ./text
sqlite> select reverse('hello');
请参阅How to Install an Extension使用IDE,Python等。
请参阅Extension Documentation以获取参考。
在Twitter上关注@ohmypy以跟上新帖子