当前位置:   article > 正文

SQL小知识和sql语句中where 1=1的作用_where 1=1 作用

where 1=1 作用

目录

文章目录

前言

一、where条件语句永远为真

二、拼接多个约束条件的语句(常用)

总结



前言

朕在数据访问层(DAL)的代码中经常能见到的查询语句,在后面加约束条件的时候都有带上where 1=1。那么它的作用 是什么呢?查阅资料后,朕决定片面总结一下。

  1. StringBuilder strSql = new StringBuilder();
  2. strSql.Append("select * from(select * from cxk where 1=1");

一、where条件语句永远为真

在不需要加条件的时候,加不加where 1=1 的语句作用是一样的,虽然加上where1=1条件,但是因为where1=1作用使条件语句永远为真,那实际上和不加约束条件是一模一样的。

select * from cxk where 1=1;
//上面的语句where条件永远为真,相当于不加约束条件,两条语句结果是一样的。
select * from cxk;


二、拼接多个约束条件的语句(常用)

当需要用到多个约束条件的时候,where1=1 就派上用场了。

  • 首先是不加where1=1 的时候,后面需要拼接约束条件语句时,可能会出现SQL语句语法错误↓
  1. StringBuilder strSql = new StringBuilder();
  2. strSql.Append("select * from CXK where ");
  3. if (!string.IsNullOrWhiteSpace(hair))
  4. {
  5.    strSql.Append("and HAIR='");
  6.    strSql.Append(hair);
  7.    strSql.Append("'");
  8. }
 比如这样得到的语句:(假设参数hair的值为中分)"select * from CXK where and HAIR='中分'";

得到的SQL语句在语法上有错误。

  • 那么在上述的条件语句拼写时,加上where 1=1,即可连接语句且不会有语法错误。

代码如下:

  1. strSql.Append("select * from CXK where 1=1");
  2. if (!string.IsNullOrWhiteSpace(hair))
  3. {
  4.    strSql.Append("and HAIR='");
  5.    strSql.Append(hair);
  6.    strSql.Append("'");
  7. }
输出语句为:"select * from CXK where 1=1 and HAIR='中分'";

所以,这里1=1的作用就是为了方便拼接SQL语句,特别是在需要拼接多个约束条件的时候,作用更明显。


总结

还有一些常见的数据库小知识,朕也总结一下

  1. 如下,在表名后加t后,可用t指代表TABLE。
  2. LIKE 和 % 用于模糊查询
"select t.* from TABLE t where t.num like '%"+number+"%'"

3.倒(降)序排列,在条件后加上 order by 列名 desc

升序排列:order by 列名 asc

select * from RECORD t where 1=1 order by t.id desc

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/273325
推荐阅读
相关标签
  

闽ICP备14008679号