A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马亚冲 黑马帝   /  2011-9-5 19:03  /  1682 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

华为有一道笔试题,大家看看怎么回答:

 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技术分 +1 收起 理由
老罗 + 1 用用就知道了。

查看全部评分

3 个回复

倒序浏览
黑马网友  发表于 2011-9-5 22:05:44
沙发
ike '%%' 过滤掉空值,所查询的列含有空值的不会被查询出来
我从网上看的,没试过
至于有没有其他的原因就不知道了
sql以前学过,当时学得也不行,现在想好好学,不知道这方面有什么好的视频,推荐一下

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1 你也要试试。

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-6 11:47:06
藤椅
第一条语句是查询全表所有结果;
第二条语句从TABLE表中查询,查询条件为:
1)NAME不能为NULL,
2)ADDR不能为NULL
3)1_ADDR不能为NULL或者是2_ADDR不能为NULL或者是3_ADDR不能为NULL
或者是4_ADDR不能为NULL   1,2,3个查询条件同时成立时的结果
注意:like '%%' 过滤掉空值(NULL代表空,不代表""),所查询的列含有空值的不会被查询出来

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-11 02:24:52
板凳
明白了,谢谢楼上各位!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马