主题:[讨论]这两个select 语句有什么区别?
风卷红旗
[专家分:0] 发布于 2010-01-06 11:10:00
select * form 成绩 where true and 院系=1 and 专业=5
select * form 成绩 where and 院系=1 and 专业=5
少了个true后没法运行,这是为什么?????
回复列表 (共4个回复)
沙发
tanchuhan [专家分:15140] 发布于 2010-01-06 11:34:00
语法错误,没得解释WHY
板凳
老大徒伤悲 [专家分:29120] 发布于 2010-01-07 09:09:00
区别显而易见,也如你上文所说。
为什么?
因为你后者不构成逻辑代数式。
前者的逻辑代数式是:
(true) and (院系=1) and (专业=5)
很明显符合逻辑代数的构成。
后者
() and (院系=1) and (专业=5)
不符合逻辑代数式的模型。
修改。
对你第二个,我建议修改如下:
如果你本有三个条件,那你就应该将第一个条件补充到空格处。
如果你就只有两个条件,那么为什么要用两个“and”运算呢?可以直接写成
select * form 成绩 where 院系=1 and 专业=5
对你第一个,虽然能运行,但我仍然建议直接修改成上面的查询字符串。那个ture是什么用处也没有的
3 楼
风卷红旗 [专家分:0] 发布于 2010-01-10 13:15:00
感谢!
4 楼
我是大喊三 [专家分:3010] 发布于 2010-01-14 00:50:00
任何数值与1(即TURE)作"AND"操作结果都仍为原值,所以那个TURE确实是多余.
我来回复