mysql where 0 1_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; 创建一个新表,而新表的结构与查询的表的结构是一样的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值