`
zhiweiofli
  • 浏览: 512073 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

在SQL语言中,where 1=1有什么用?

阅读更多
转自:http://hi.baidu.com/nenggan123/blog/item/f9d17efad238b2106c22ebec.html where 1=1有什么用?在SQL语言中,写这么一句话就跟没写一样。 select * from table1 where 1=1与select * from table1完全没有区别,甚至还有其他许多写法,12,'a'='a','a''b',其目的就只有一个,where 的条件为永真,得到的结果就是未加约束条件的。 在SQL注入时会用到这个,例如select * from table1 where name='lala'给强行加上select * from table1 where name='lala' or 1=1这就又变成了无约束的查询了。 最近发现的妙用在于,在不定数量查询条件情况下,1=1可以很方便的规范语句。例如一个查询可能有 name,age,height,weight约束,也可能没有,那该如何处理呢? String sql=select * from table1 where 1=1 为什么要写多余的1=1?马上就知道了。 if(!name.equals("")){ sql=sql+"name='"+name+"'"; } if(!age.equals("")){ sql=sql+"age'"+age+"'"; } if(!height.equals("")){ sql=sql+"height='"+height+"'"; } if(!weight.equals("")){ sql=sql+"weight='"+weight+"'"; } 如果不写1=1呢,那么在每一个不为空的查询条件面前,都必须判断有没有where字句,否则要在第一个出现的地方加 where 今天看到:"SELECT * FROM strName WHERE 1 = 0"; 不理解为什么有1=0? 查询得出答案: 该select语句主要用于读取表的结构而不考虑表中的数据,这样节省了内存,因为可以不用保存结果集。 另外,这个用在什么地方呢?主要用于创建一个新表,而新表的结构与查询的表的结构是一样的。如下SQL语句: create table newtable as select * from oldtable where 1=0;
分享到:
评论

相关推荐

    Go-golang中规则引擎的一种查询语言类似于SQL中的where部分

    golang中规则引擎的一种查询语言类似于SQL中的where部分

    深入理解where 1=1的用处

    where 1=1有什么用?在SQL语言中,写这么一句话就跟没写一样。 select * from table1 where 1=1与select * from table1完全没有区别,甚至还有其他许多写法,1<>2,’a’=’a’,’a'<>’b’,其目的就只有一个...

    Golang sqlx 使用sql语句 Where in 解决办法

    方法1、使用语言的for语句循环生成SQL语句中的“?”,类似这样: 新建方法 func placeholders(n int) string { var b strings.Builder for i := 0; i 0 { b.WriteString("?") } return b.String() }  调用...

    西南交通大学第四章-数据库作业.docx

    3. SQL语言对数据库对象的定义使用哪三个SQL命令关键字? Create,alter,drop。 4. 标准的SQL语言与实际数据库产品中的SQL数据库语言的关系? 绝大多数实际数据库产品并不完全支持标准SQL,SQL的某些功能在实际...

    SQL数据库DDL语言经典积累

    上面是对DDL语言操作的经典语句的集合。上面是对DDL语言操作的经典语句的集合。上面是对DDL语言操作的经典语句的集合。

    详析SQL语言的WHERE子句与HAVING子句.pdf

    详析SQL语言的WHERE子句与HAVING子句.pdf

    关系数据库与SQL语言

    关系数据库入门 详细的介绍了SQL语言 查询没有选修1号课程的学生姓名。 SELECT Sname FROM Student WHERE NOT EXISTS (SELECT * FROM SC WHERE Sno = Student.Sno AND Cno='1');

    经典全面的SQL语句大全

    delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )  11、说明:四表联查问题: select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c ...

    数据库SQL语言学习

    在SQL查询中,一个SELECT-FROM-WHERE查询语句称为一个查询块;将一个查询块嵌入到另一个查询块的WHERE子句或HAVING子句中,称为嵌套子查询

    SQL语句大全 实例

    各种sql实用例子 (1)数据记录筛选: ...sql="update数据表set字段1=值1,字段2=值2……字段n=值nwhere条件表达式" (3)删除数据记录: sql="deletefrom数据表where条件表达式" sql="deletefrom数据

    sql语言参考大全(光盘源码)

    sql语言参考大全(光盘源码)书中的实例后台数据库采用了SQL Server 2000、SQL Server 2005、Oracle、MySQL、Access5种数据库。光盘包含了本书运行需要的光盘源程序文件(脚本)和光盘使用说明书。光盘源程序文件...

    基于BERT预训练模型使用pythorch训练中文句子转结构化sql(Python)(自然语言NLP转SQL)

    将NLP语言转为机器可以理解的SQL语言 模型的输入为一个 Question,输出一个 SQL 结构,该 SQL 结构对应一条 SQL 语句。 SQL结构 sel 为一个 list,代表 SELECT 语句所选取的列 agg 为一个 list,与 sel 一一对应...

    SQL语言与excel。VBA结和

    EXCEL里使用SQL的方法(欢乐小爪原创) 急用EXCEL的SQL用法,抄来欢乐小爪几篇文章,支持原创,留下小爪印:http://hi.baidu.com/huanhuanxiaozhua/blog EXCEL(VBA)~SQL 经典写法范本汇集(一) 2007-12-10 21:20 ...

    数据库实验(1-4)SQL Server 2012数据库系统

    使用WHERE子句进行有条件的查询 使用IN,NOT IN,BETWEEN等谓词查询 利用LIKE子句实现模糊查询 利用ORDER子句为结果排序 用SQL Server的统计函数进行统计计算 用GR0UP BY子句实现分组查询的方法 连接...

    精通SQL--结构化查询语言详解

    10.3.3 在having子句中使用相关子查询 201 10.4 嵌套子查询 203 10.5 使用子查询创建视图 204 10.6 树查询 205 第11章 数据插入操作 209 11.1 插入单行记录 209 11.1.1 基本语法 209 11.1.2 整行插入 209 ...

    sql语句生成标准的字典

    主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( SELECT name FROM sysindexes WHERE indid in( SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid ))) ...

    数据库SQL查询语句练习题.doc

    更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ (所有包含‘value1’这个模式的字符串) 排序:select * from table1 order by field1,field2 ...

    sql server 2005 填空题

    SQL语言的英文全称为structured packingQuery Language ,在SQL中,基本表的删除可用drop table table-name 语句,删除基本表中的所有元组可用delete [from] table-name where search-conditions语句。...

    学生选课全代码sqL

    string sqlString = "select count(*) from Users where name='"+name+"' and pass='"+pass+"'"; object obj = SqlHelper.ExecuteScalar(SqlString,CommandType.Text, sqlString); if(obj!=null && obj.ToString...

    SQL语言进行简单查询

    1、 查询选修了课程的学生人数。 select count(distinct sno) 学生人数--distinct表示去掉重复行 from sc 2、 查询学生200515001选修课程的总学分数。 select sum(credit) from course,sc where sno = '200515001' ...

Global site tag (gtag.js) - Google Analytics