select * from 表名 where 1=1

来源:百度知道 编辑:UC知道 时间:2024/06/03 20:32:30
这个1=1是代表的什么意思?

1=1 代表true, 如果单独是这个sql语句,可以不写where 1=1。

但如果在程序中需要拼装sql语句。比如后面要加条件,就要写上这个。

主要是避免当不需要拼接sql语句时,上面这个sql语句会出错。

相当于 select * from 表名 where true;
单独加上where 1=1是没有意义的,等同于select * from 表名;
但一般情况下用于在Dao层拼接字符串,比如:

String sql = "select * from 表名 where 1=1";
把String类型的字符串sql转换成StringBuilder后,
StringBuilder sb = new StringBuilder(sql);
使用append()方法,比如:

sb.append("and id=?");
sb.append("and name like ?");
再转回字符串String就行了:
sql = sb.toString();
所以它本身没有用,但拼接的话可以作为辅助使用

1=1 表示恒成立的条件 和 没有条件是一个效果

上面的语句等效于

select * from 表名

列名为1的内容为1。

可以吧 where 1=1 除掉,没实际意思,我个人认为