美文网首页
动态拼接SQL语句

动态拼接SQL语句

作者: whenitsallover | 来源:发表于2018-08-13 17:47 被阅读0次

where 1=1; 这个条件始终为True,在不定数量查询条件情况下,1=1可以很方便的规范语句。

举个例子,如果做查询页面,并且,可查询的选项有多个,同时,还让用户自行选择并输入查询关键词,那么,按平时的查询语句的动态构造,就要有多个if进行判断用户的输入

date_sql = " " if date == u'' else (" and field1='" + date + "' ")
script_sql = " " if xxx== u'' else (" and field2 like'" + '%'+xxx+'%' "' ")
sql = 'select  field_name from table_name  where 1=1' + date_sql + script_sql 

where 1=1 恒成立,因此如果用户在多条件查询页面中,不选择任何字段、不输入任何关键词,那么,必将返回表中所有数据;如果用户在页面中,选择了部分字段并且输入了部分查询关键词,那么,就按用户设置的条件进行查询。

if sTime != None and eTime != None and len(sTime) > 0 and len(eTime) > 0:
     sql_condition = " and date between '" + sTime + "' and '" + eTime + "'"
 elif sTime != None and len(sTime) > 0:
          sql_condition = " and date >= '" + sTime + "'"
      elif eTime != None and len(eTime) > 0:
          sql_condition = " and date <= '" + eTime + "'"

sql = "select  field_name where 1=1" + sql_condition

where 1=1的应用,不是什么高级的应用,也不是所谓的智能化的构造,仅仅只是为了满足多条件查询页面中不确定的各种因素而采用的一种构造一条正确能运行的动态SQL语句的一种方法。

相关文章

  • Mybatis--动态SQL(if,where,trim)

    Mybatis框架的动态SQL技术是一种根据特定条件动态拼接SQL语句的功能,作用是为了解决拼接SQL语句字符串的...

  • MyBatis 动态SQL(*.xml)

    原文参考MyBatis 动态SQL MyBatis的动态SQL大大减少了拼接SQL语句时候的各种格式问题,这里摘录...

  • Mybatis入门(三)之动态sql

    Mybatis入门之动态sql 动态拼接sql语句,在我的理解就是相当于Java中的逻辑控制语句(if,,swit...

  • MyBatis动态sql

    动态sql就是可以对sql语句进行灵活的封装,拼接。通过mybatis语法的判断可以实现动态sql。 1 if标签...

  • MyBatis笔记 | 详解动态SQL

    我们想,对于SQL映射文件中的sql语句,能够根据传入的值的不同来动态的拼接sql语句。此时就可以使用到动态SQL...

  • 动态拼接SQL语句

    where 1=1; 这个条件始终为True,在不定数量查询条件情况下,1=1可以很方便的规范语句。 举个例子,如...

  • MyBatis动态SQL

    动态 SQL 是 MyBatis 的强大特性之一。根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记...

  • MyBatis传参数

    传递业务参数给sql语句,可用于动态拼接sql语句。在xml中的select标签中,参数节点parameterTy...

  • 04动态sql

    学习以下动态sql语句 if(多条件动态拼接)2)where(解决where and/or情况)3)set(解决u...

  • sql注入

    错误根源 每次在将动态内容与sql语句拼接时都要考虑sql注入的风险。问题根源在于没有将数据与代码(sql语句)进...

网友评论

      本文标题:动态拼接SQL语句

      本文链接:https://www.haomeiwen.com/subject/drbubftx.html