sqlite 的可比等运算是根据分裂的值而不一致的,并不是依照的字段类型,因为 sqlite 是弱类型字段

sqlite 的比较等运算是根据不相同的值而各异的,并不是依照的字段类型,因为
sqlite 是弱类型字段

 


http://www.sqlite.com.cn/MySqlite/5/127.Html

 

在SQLite3.0版中,值被定义为何类型只和值我有关,和列没有关系,和变量也远非关系.
(那有时被称作
弱类型.)所有其余的大家所接纳的数据库引擎都受静态类型系统的限制,其中的所有值的类是由其所属列的习性决定的,而和值毫不相关.

 

为了最大限度的增加SQLite数据库和任何数据库的兼容性,SQLite接济列的”类型亲和性”.
列的亲和性是为该列所蕴藏的数量指出一个类型.大家要留意是提议而不是强迫.在答辩上来讲,任何列依旧是可以储存任何类型的数码的.
只是指向少数列,如果给提议项目标话,数据库将按所提议的档次存储.这几个被优先选用的数据类型则被叫做”亲和档次”. 

 


When grouping values with the 当用GROUP
BY子句给值分组时,具有分歧存储类型的值被认为是见仁见智的, 但也有两样,
比如,一个整数值和一个实数值从数字角度来说是卓殊的,那么它们则是相当的.用GROUP
by 子句比较完后,值不负有其余亲和性.

 


要越发注意的是 sqlite 文档讲解到的

 

BLOB文本是以“x”或“X”开头的含有十六进制文本信息的文本值。例如:

 

    X’53514697465′

 

BLOB literals are string literals containing hexadecimal data and
preceded by a single “x” or “X” character. For example:

 

    X’53514C697465′

 

 

此地写入的是二进制内容, 这样写入的字符串是不可能用 “=” 拔取出来的,例如

 

insert into appzfdata(id) values(x’3131′)

insert into appzfdata(id) values(’11’)

 

万一用语句接纳

 

select * from appzfdata where id = ’11’
是挑选不出去第一条的(不论创造表时 id
用什么品种的字段).不过你用管理工具软件去看去发现两条记下的 id 值都是
“11”
要是不明就里,你肯定会充足抓狂.我以为那是个要命严重的题材,我怎么通晓里面存的是怎么着品种的数码? 

 

用 like 代替 “=” 号则可以取出来.

 

/*
select length(id),x’31’  t,* from appzfdata  –where id like “1”

–and t = x’31’

where id = x’313100′ or id = ’11’

 

–select (‘aaa’ ||id) ||’aaa’, * from appzfprice where [appname]
like’i1′

 

select length ( appname ), * from appzfprice where [appname] like
‘i1’

 

*/

select * from t2 where id = ‘1’