sql where 1=1 妙用之一方面
在不定数量查询条件情况下,1=1可以很方便的规范语句。例如一个查询可能有name,age,height,weight约束,也可能没有,那该如何处理呢?
String sql=select * from table1 where 1=1
为什么要写多余的1=1?马上就知道了。
if(!name.equals("")){
sql=sql+"and name='"+name+"'";
}
if(!age.equals("")){
sql=sql+"and age'"+age+"'";
}
if(!height.equals("")){
sql=sql+"and height='"+height+"'";
}
if(!weight.equals("")){
sql=sql+"and weight='"+weight+"'";
}
如果不写1=1呢,那么在每一个不为空的查询条件面前,都必须判断有没有where字句,否则要在第一个出现的地方加where
where 1=1的写法是为了检化程序中对条件的检测
打个比方有三个参数a, b, c
@sql=select * from tb'
这三个参数都可能为空
这时你要构造语句的话,一个个检测再写语句就麻烦
比如
if @a is not null
@sql=@sql + " where a=' + @a
if @b is not null
这里你怎么写?要不要加where 或直接用 and ?,你这里还要对@a是否为空进行检测
用上 where 1=1 之后,就不存在这样的问题, 条件是 and 就直接and ,是or就直接接 or
sql where 1=1 妙用之一方面相关推荐
- SQL中LIKE的妙用
例如,数据表t1中有一个字段PlayTheme存放的数值类似如下: 第一行:1,2,12 第二行:22,222,2222 第三行:1,2 第四行:2,12 第五行:2 如果你想取出PlayTheme字 ...
- sql子查询的妙用:用在from后面做子表、用在where后面做子条件以及用在select后面用作子字段
昨天去客户方让客户小姐姐给我查询一段sql的时候,竟然发现sql子查询还可以这样写: sql子查询不仅仅可以出现在from 后面作为表结构,譬如: select t1.company_id,t1.co ...
- SQL 2005: @@identity 的妙用
insert into a values('aaaaa') print @@identity; //打印刚生成的主键值. ** update a set c='AAAAAAAAAAAA' where ...
- dede调用sql语句的方法
这篇文章给大家分享的是有关dede调用sql语句的方法的内容.小编觉得挺实用的,因此分享给大家做个参考.一起跟随小编过来看看吧. dede的sql语句怎么调用? sql语句调用,在一些特殊情况下还 ...
- Let‘s Fluent:更顺滑的MyBatis
简介: 只需瞅一眼Google Trends上全球Java界最热门的两款SQL映射框架近一年的对比数字,就不难了解其实力分布:在此领域,MyBatis早已占领东亚地区开发者市场,并以绝对优势稳居中国最 ...
- java 必备面试必备
1.JDK 和 JRE 有什么区别? JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含 ...
- SQL Server开发人员应聘常见问题妙解
SQL Server开发人员应聘常见问题妙解 目前在职场中很难找到非常合格的数据库开发人员.我的一个同事曾经说过:"SQL开发是一门语言,它很容易学,但是很难掌握." 在面试应聘的 ...
- 库存生产-实用sql知识:如何在保证去重分组的情况下获取组内最新数据(可按时间排序),distinct +group by +嵌套结果 的联合妙用
这是花了一个小时实践出来的! 网上有特别多的distinct +group by 的比较区别的,几乎没有几篇文章说他们的联合妙用. 步入正题,先说我发现妙用的基于实际问题: 库存与入库单的一个关系业务 ...
- SQL Server开发人员应聘常被问的问题妙解汇总
目前在职场中很难找到非常合格的数据库开发人员.我的一个同事曾经说过:"SQL开发是一门语言,它很容易学,但是很难掌握." 在面试应聘的SQL Server数据库开发人员时,我运用了 ...
最新文章
- Python matplotlib可视化:用Matplotlib的bar_label函数为条形图添加数值标记(在每一个条形的外侧顶部)
- linux打包运行python文件_Linux下安装pyinstaller用于将py文件打包生成一个可执行文件...
- oracle伪列ROWNUMBER,oracle 中 rownum 和 row_number()
- 中文版Visual Studio 2008 SP1 智能提示为英文的补丁发布
- java中输出a个b_下面代码输出什么 ( ) var a=0,b=0; for(;a10,b7;a++,b++){ g=a+b; } console.log(g);_学小易找答案...
- 聊天室私聊php代码,聊天室技术 - 密谈的实现_php
- 数据库驱动加载失败问题
- android solid代码,Android中形状图形 | shape图形常用的3个节点:corners(圆角)、solid(填充) 和 stroke(描边)...
- nodejs 写入html,html2markdownnodejs也能写爬虫?记一次blog迁移至Ghost
- PhotonServer简介(Yanlz+Unity+Photon+PUN+BOLT+UNet+KBEngine+立钻哥哥+CCU+MMO+WWW+==)
- 水下航行器简介及水下面临的挑战
- Verilog编程之道 - Verilog语言特性
- 关于我于Security Assistant Agent这个Bitch软件的点滴
- 第一门编程语言选谁?
- 福昕阅读器【上下分屏】阅读同一个PDF,上下文对照参考阅读,非常方便
- Adobe Audition CC v6.0.732免注册版更新
- 电脑如何批量修改图片350dpi? 分享一款实用的在线图片处理工具
- 上海域格ASR平台CAT1模块MQTT和基站信息功能
- 一个Python猜字小游戏
- Exchange邮件系统有问必答系列四:收件人管理-黄锦辉-专题视频课程