android2.1与android2.2 的sqlite3中substr小小差异

android2.1与android2.2 的sqlite3中substr小小区别

android2.1中substr(str,0,X)和substr(str,1,X)返回的值是一样的,都是从第一字符开始截取X个字符。

 

而在android2.2中substr(str,0,X)是从第0个字符(相当于一个占位符)开始截取X个字符,substr(str,1,X)是从第1个字符开始截取X个字符。

 

例如: str="abcdefghijk"

 

在android2.1中:

       

         substr(str,0,4)="abcd"          substr(str,1,4)="abcd"      

 

在android2.2中:

        

         substr(str,0,4)="abc"          substr(str,1,4)="abcd"

   

 

另外:

 

在android2.1中:(X为正整数)

 

          substr(str,0,-X)=substr(str,1,-X)="abcdefghijk"    substr(str,2,-X)="bcdefghijk"       

 

          substr(str,-2,X)=substr(str,-2,-X)="jk"                  substr(str,-1,X)=substr(str,-1,-X)="k"

 

在android2.2中:(X为正整数)

 

          substr(str,0,-X)=substr(str,1,-X)=""          substr(str,2,-X)="a"              substr(str,3,-X)="b"

 

          substr(str,-3,-100)="abcdefg"                   substr(str,-3,-2)="fg"            substr(str,-3,0)=""

 

          substr(str,-3,1)="h"                                   substr(str,-3,2)="hi"              substr(str,-3,100)="hijk"