`
yipbxx
  • 浏览: 60392 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

where 1=1 和 0=1

    博客分类:
  • DB
阅读更多

where 1=1有什么用?在SQL语言中,写这么一句话就跟没写一样。   
  
select * from table1 where 1=1与select * from table1完全没有区别,甚至还有其他许多写法,1<>2,'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;  
分享到:
评论

相关推荐

    where 1=1和 0=1

    开发人员和数据管理员需明白的,where 1=1和 0=1的作用

    sql中where 1=1 与1=0的作用1

    在SQL查询中,`WHERE 1=1`和`WHERE 1=0`是两种特殊用法,它们在构建动态查询语句时起到关键作用。本文将详细解释这两种条件语句的作用及其应用场景。 首先,`WHERE 1=1`是一个恒为真的条件,无论何时,这个表达式都...

    SQL_where_1=1的用法

    除了作为动态SQL构建的一部分外,`WHERE 1=1` 和 `WHERE 1=0` 也有其他用途: 1. **WHERE 1=0**: - 这个条件始终为假,因此不会返回任何数据。它可以用于某些特殊场合,比如快速创建表结构而不获取数据: ```sql...

    sql where 1=1的优缺点分析

    总结来说,`WHERE 1=1`和`WHERE 1=0`是SQL查询中的实用技巧,它们分别帮助构建动态查询并处理没有数据的情况。在处理可变条件的查询时,使用`WHERE 1=1`能确保语法正确性,而`WHERE 1=0`则常用于获取表结构或创建空...

    sql 1=1和1=0的作用

    使用 where 1=1 的好处 不用where 1=1 在多条件查询中的困扰

    sql添加表列字段描述添加默认值删除字段

    EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'先用项目结项数' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'jsc_financial', @level2type=N'COLUMN',@...

    查询记录功能,从access数据库中读取,Adodc1.RecordSource = &quot;select * from 订单表 where 订

    查询记录功能,从access数据库中读取,Adodc1.RecordSource = "select * from 订单表 where 订 单号='" + Text1(0).Text + "'" Adodc1.Refresh(VB6.0源代码编写)

    海信商海导航SQL修改语句

    where canstore='0' delete xvipdb..viptopos where canstore='0' /* 修改上次结帐日期*/ update SysDB..Syscfg set ItemValue='2007-04-10 1' where ItemName='OVERSTATUS' update VipDB..Syscfg set Item...

    php 表达式where查询

    本文将详细介绍 PHP 表达式 WHERE 查询的使用格式、支持的查询语法和示例。 使用格式 ---------- PHP 表达式 WHERE 查询的使用格式如下: ```php $map['字段'] = array('表达式', '查询条件'); ``` 其中, `$map`...

    第05篇:WAF Bypass数据库特性(Mysql探索篇)1

    - 示例:`SELECT * FROM admin WHERE username = 1%0a union select 1,user() from admin` - **浮点数形式**:将整数转化为浮点数表示,如`1.1`。 - 示例:`SELECT * FROM admin WHERE username = 1.1 union ...

    网狐实物点卡生成(带数据库脚本和存储过程)

    --update QPGameUserDB.dbo.AccountsInfo set UserRight=0 Where UserID=@userid INSERT INTO [PostLog]([PostCode],[PassWord],[UserID],[price],[PostDate],[IsCrad]) VALUES (@cardcode,@cardpass,@...

    SQL一条语句统计记录总数及各状态数

    代码如下:SELECT SUM(正确数)+SUM(错误数) AS 总记录数,SUM(正确数),SUM(错误数) FROM ( SELECT COUNT(1) 正确数,0 错误数 FROM TB WHERE STATUS=1 UNION ALL SELECT 0 正确数,COUNT(1) 错误数 FROM TB WHERE ...

    SQL sever 实训

    X祕BwL0 17240671-1.sql ?年3月9日 --1.查询course表的所有信息(所有行所有列) USE Xk GO SELECT * FROM Course --有哪些种类的选修课?学分是多少 USE XK GO SELECT Kind,Credit FROM Crouse GO 修改列名字 ...

    MySQL并发更新数据时的处理方法

    例如,在SQL语句`UPDATE table1 SET num = num + 1 WHERE id=1;`的情况下,MySQL实际上会执行类似以下两步操作的逻辑: 1. `a = SELECT * FROM table1 WHERE id=1;` 2. `UPDATE table1 SET num = a.num + 1 WHERE ...

    C#实现对FireBird数据库数据操作

    string sql = "UPDATE your_table SET column1 = @newValue WHERE id = @id"; cmd.Parameters.AddWithValue("@newValue", newValue); cmd.Parameters.AddWithValue("@id", id); cmd.ExecuteNonQuery(); ``` 与...

    Sql Server参数化查询之where in和like实现详解

    Sql Server参数化查询之where in和like实现详解 在Sql Server中,参数化查询是提高查询性能和防止SQL注入攻击的有效方法之一。其中,where in和like是两个常用的查询条件,然而它们的参数化实现却不是那么简单。...

    数据库精选sql语句练习题 sql语句练习题

    CREATE TABLE GRADE (LOW NUMBER(3,0), UPP NUMBER(3), RANK CHAR(1)); INSERT INTO GRADE VALUES (90, 100, 'A'); INSERT INTO GRADE VALUES (80, 89, 'B'); INSERT INTO GRADE VALUES (70, 79, 'C'); INSERT INTO ...

    啊D注入工具中使用的SQL注入语句-1.txt

    Id=1659 and (select Count(1) from [admin] where 1=1) between 0 and 8` - 通过计算`admin`表中的记录数并限定在一个范围内,从而缩小查找范围。 7. **逐位获取管理员密码:** - `?Id=1659 and (select abs(asc...

    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() }  调用...

Global site tag (gtag.js) - Google Analytics