SELECT * FROM TABLE
和
SELECT * FROM TABLE
WHERE NAME LIKE '%%' AND ADDR LIKE '%%'
AND (1_ADDR LIKE '%%' OR 2_ADDR LIKE '%%'
OR 3_ADDR LIKE '%%' OR 4_ADDR LIKE '%%' )
的检索结果为何不同?
和
SELECT * FROM TABLE
WHERE NAME LIKE '%%' AND ADDR LIKE '%%'
AND (1_ADDR LIKE '%%' OR 2_ADDR LIKE '%%'
OR 3_ADDR LIKE '%%' OR 4_ADDR LIKE '%%' )
的检索结果为何不同?
可下面的那句查询不出字段为null的行
所有的记录,SELECT * FROM TABLE
WHERE NAME LIKE '%%' AND ADDR LIKE '%%'
AND (1_ADDR LIKE '%%' OR 2_ADDR LIKE '%%'
OR 3_ADDR LIKE '%%' OR 4_ADDR LIKE '%%' )
选择出Name不为空Null,ADD为不空,及1_ADDR,2_ADDR,3_ADDR,4ADDR中有一个不为空的记录,
这个类型很好。尤其是,只插入,很少查询的表。能够尽可能少的占用空间。
在数据量大( > 2000000 )且用不到索引的情况下,偶尔查询一次,速度会比 not null ( 写入默认值) 的快 N (N>100)倍。(当然了,如果谁这样建表,说明谁还不十分了解数据库)但是,我个人认为,字段该建为 null 的时候,一定要 null。
这就要看需求了。