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 '%%' )
  的检索结果为何不同?

解决方案 »

  1.   

     SELECT * FROM TABLE 这句可以查询出所有行;
    可下面的那句查询不出字段为null的行
      

  2.   

    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 '%%' ) 
    选择出Name不为空Null,ADD为不空,及1_ADDR,2_ADDR,3_ADDR,4ADDR中有一个不为空的记录,
      

  3.   

    BS 笔试的人!我现在表定义的时候从来都是NOT NULL!
      

  4.   

    呵呵,该是 null,还得 null
    这个类型很好。尤其是,只插入,很少查询的表。能够尽可能少的占用空间。
    在数据量大( > 2000000 )且用不到索引的情况下,偶尔查询一次,速度会比 not null ( 写入默认值) 的快 N (N>100)倍。(当然了,如果谁这样建表,说明谁还不十分了解数据库)但是,我个人认为,字段该建为 null 的时候,一定要 null。
    这就要看需求了。