在不定数量查询条件情况下,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 妙用之一方面相关推荐

  1. SQL中LIKE的妙用

    例如,数据表t1中有一个字段PlayTheme存放的数值类似如下: 第一行:1,2,12 第二行:22,222,2222 第三行:1,2 第四行:2,12 第五行:2 如果你想取出PlayTheme字 ...

  2. sql子查询的妙用:用在from后面做子表、用在where后面做子条件以及用在select后面用作子字段

    昨天去客户方让客户小姐姐给我查询一段sql的时候,竟然发现sql子查询还可以这样写: sql子查询不仅仅可以出现在from 后面作为表结构,譬如: select t1.company_id,t1.co ...

  3. SQL 2005: @@identity 的妙用

    insert into a values('aaaaa') print @@identity; //打印刚生成的主键值. ** update a set c='AAAAAAAAAAAA' where ...

  4. dede调用sql语句的方法

    这篇文章给大家分享的是有关dede调用sql语句的方法的内容.小编觉得挺实用的,因此分享给大家做个参考.一起跟随小编过来看看吧.  dede的sql语句怎么调用?  sql语句调用,在一些特殊情况下还 ...

  5. Let‘s Fluent:更顺滑的MyBatis

    简介: 只需瞅一眼Google Trends上全球Java界最热门的两款SQL映射框架近一年的对比数字,就不难了解其实力分布:在此领域,MyBatis早已占领东亚地区开发者市场,并以绝对优势稳居中国最 ...

  6. java 必备面试必备

    1.JDK 和 JRE 有什么区别? JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含 ...

  7. SQL Server开发人员应聘常见问题妙解

    SQL Server开发人员应聘常见问题妙解 目前在职场中很难找到非常合格的数据库开发人员.我的一个同事曾经说过:"SQL开发是一门语言,它很容易学,但是很难掌握." 在面试应聘的 ...

  8. 库存生产-实用sql知识:如何在保证去重分组的情况下获取组内最新数据(可按时间排序),distinct +group by +嵌套结果 的联合妙用

    这是花了一个小时实践出来的! 网上有特别多的distinct +group by 的比较区别的,几乎没有几篇文章说他们的联合妙用. 步入正题,先说我发现妙用的基于实际问题: 库存与入库单的一个关系业务 ...

  9. SQL Server开发人员应聘常被问的问题妙解汇总

    目前在职场中很难找到非常合格的数据库开发人员.我的一个同事曾经说过:"SQL开发是一门语言,它很容易学,但是很难掌握." 在面试应聘的SQL Server数据库开发人员时,我运用了 ...

最新文章

  1. Python matplotlib可视化:用Matplotlib的bar_label函数为条形图添加数值标记(在每一个条形的外侧顶部)
  2. linux打包运行python文件_Linux下安装pyinstaller用于将py文件打包生成一个可执行文件...
  3. oracle伪列ROWNUMBER,oracle 中 rownum 和 row_number()
  4. 中文版Visual Studio 2008 SP1 智能提示为英文的补丁发布
  5. java中输出a个b_下面代码输出什么 ( ) var a=0,b=0; for(;a10,b7;a++,b++){ g=a+b; } console.log(g);_学小易找答案...
  6. 聊天室私聊php代码,聊天室技术 - 密谈的实现_php
  7. 数据库驱动加载失败问题
  8. android solid代码,Android中形状图形 | shape图形常用的3个节点:corners(圆角)、solid(填充) 和 stroke(描边)...
  9. nodejs 写入html,html2markdownnodejs也能写爬虫?记一次blog迁移至Ghost
  10. PhotonServer简介(Yanlz+Unity+Photon+PUN+BOLT+UNet+KBEngine+立钻哥哥+CCU+MMO+WWW+==)
  11. 水下航行器简介及水下面临的挑战
  12. Verilog编程之道 - Verilog语言特性
  13. 关于我于Security Assistant Agent这个Bitch软件的点滴
  14. 第一门编程语言选谁?
  15. 福昕阅读器【上下分屏】阅读同一个PDF,上下文对照参考阅读,非常方便
  16. Adobe Audition CC v6.0.732免注册版更新
  17. 电脑如何批量修改图片350dpi? 分享一款实用的在线图片处理工具
  18. 上海域格ASR平台CAT1模块MQTT和基站信息功能
  19. 一个Python猜字小游戏
  20. Exchange邮件系统有问必答系列四:收件人管理-黄锦辉-专题视频课程

热门文章

  1. Mybatis XML文件如何编写In语句
  2. 从源码分析RocketMQ系列-Producer的invokeSync()方法
  3. shell等待特定进程pid退出的方法
  4. 面试题:ConcurrentHashMap 和 Hashtable 的区别
  5. kafka自定义分区实战
  6. JAVA中获得前一天的时间
  7. linux环境下rocketMq双master集群搭建
  8. Markdown语法--整理
  9. 项目管理工具——Maven
  10. 常见的 HTTP 状态代码及原因