where 0=1和where1=1语句

where 1=1始终为true,在构造动态sql语句时,能够保证查询语句恒正确。
where 1=0; 这个条件始终为false,结果不会返回任何数据,只有表结构,可用于快速建表。

动态sql语句的一些问题

string MySqlStr="select * from table where";
if(Age.Text.Lenght>0)
  {
    MySqlStr=MySqlStr+“Age="+"'Age.Text'";
  }

if(Address.Text.Lenght>0)
  {
    MySqlStr=MySqlStr+"and Address="+"'Address.Text'";
  }

如果两个if语句均不成立,那么MySqlStr动态构造语句就变成了:
MySqlStr="select * from table where"
这是一条错误的语句,不能被执行,会报错,这并不是一种好的编码方式,不够鲁棒。

使用where 1=1语句后

string MySqlStr="select * from table where 1=1";
if(Age.Text.Lenght>0)
  {
    MySqlStr=MySqlStr+“and Age="+"'Age.Text'";
  }

if(Address.Text.Lenght>0)
  {
    MySqlStr=MySqlStr+"and Address="+"'Address.Text'";
  }

若两个if不成立,MySqlStr语句就变成了:
MySqlStr="select from table where 1=1;
该语句语法正确,它的作用相当于:MySqlStr=”select * from table;,被执行后,返回表中所有数据。意思就是,用户在多条件查询时,不输入任何条件,就会返回表中所有数据。

where 0=1语句

where 1=0; 这个条件始终为false,结果不会返回任何数据,只有表结构,可用于快速建表
SELECT * FROM strName WHERE 1 = 0; 该select语句主要用于读取表的结构而不考虑表中的数据,这样节省了内存,因为可以不用保存结果集。
create table newtable as select * from oldtable where 1=0; 创建一个新表,而新表的结构与查询的表的结构是一样的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • SQL SELECT 语句 一、查询SQL SELECT 语法 (1)SELECT 列名称 FROM 表名称 (2...
    有钱且幸福阅读 5,686评论 0 33
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,766评论 18 399
  • 50个常用的sql语句Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname...
    哈哈海阅读 1,254评论 0 7
  • 任何知识、技能、成就,都要靠长期的积累,不可能一蹴而就,也没有什么捷径,更没有什么速成。像我们常看到的各种速成...
    营养私教西西阅读 182评论 0 0
  • 很多喜欢写文章的作者都遇见过这样的问题 为什么我的文章总是没人阅读呢?(其实就是阅读量低) 为什么别人都不喜欢我的...
    三龙鑫阅读 469评论 1 2