回 帖 发 新 帖 刷新版面

主题:[讨论]这两个select 语句有什么区别?

select * form 成绩 where true and 院系=1 and 专业=5
select * form 成绩 where and 院系=1 and 专业=5
少了个true后没法运行,这是为什么?????

回复列表 (共4个回复)

沙发

语法错误,没得解释WHY

板凳

区别显而易见,也如你上文所说。

为什么?
因为你后者不构成逻辑代数式。
前者的逻辑代数式是:
(true) and (院系=1) and (专业=5)
很明显符合逻辑代数的构成。
后者
() and (院系=1) and (专业=5)
不符合逻辑代数式的模型。

修改。
对你第二个,我建议修改如下:
如果你本有三个条件,那你就应该将第一个条件补充到空格处。
如果你就只有两个条件,那么为什么要用两个“and”运算呢?可以直接写成
select * form 成绩 where 院系=1 and 专业=5

对你第一个,虽然能运行,但我仍然建议直接修改成上面的查询字符串。那个ture是什么用处也没有的

3 楼

感谢!

4 楼

任何数值与1(即TURE)作"AND"操作结果都仍为原值,所以那个TURE确实是多余.

我来回复

您尚未登录,请登录后再回复。点此登录或注册