where 1 = 1表示的就是true,就是一个为真的条件,这种用法多用在需要用户输入判断条件的地方,比如说在开发报表的时候,用户会自己输入相应的条件判断。如果,没有where 1= 1,那么只有当where后面的判断语句能够满足的时候才能正常执行;但是,假如后面的判断没有满足,这个时候where后面就没有判断,类型于select * from t_table where,而如果有了where 1 =1 这个条件,那么这个时候就类型于select * from t_table where 1 = 1,这个时候后面就有了一个表示true的条件,执行的时候就不会出现问题。
所以,在做开发的时候,要注意别忘了适当的加上这个条件,如果不知道什么时候该加,那就什么时候都加上吧,这样虽然挺笨,但是也没错。补充一下,至于where 1 = 0的应用,可以用来获取表的结构,如下:
使用where 1 = 0可以非常方便的获取表结构,去除表中的记录数据。
2014-11-04补充:
在一个SQL语句中,由于from子句是必需的,它总是被第一个评估的子句。如果指定了where子句,那么from子句的评估结果将用于where子句;如果没有指定where子句,那么from子句的评估结果将用于下一个指定的子句,例如,group by子句或having子句。在表达式中的最后一个子句被评估完之后,它的结果将用于select子句。在评估完select子句后,将评估order by子句。
欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://bbs.delit.cn/) | Powered by Discuz! X3.2 |