zoukankan      html  css  js  c++  java
  • thinkjs——修改where默认条件为or

    写之前,得先反思一下:总以为大神同事的高冷是一种与大家格格不入的节奏,可是当自己遇到的问题难以解决的时候,大神同事一下子就让问题迎刃而解,于是,满眼的敬佩之感:一定努力当一个像大神同事一样的programmer!

    进入正题:

    一直以来工作中,使用的都是nodejs中的thinkjs框架,基本上做的也是后台 数据的增删改查,类似的流程,似乎让自己忽略了其中的一些小秘密,于是今天就碰见了这个坑:

    这是在model中写的where查询条件,官网是这样子解释的:

    model.where(where)
    •where {String | Object} where 条件 
    •return {this} 
    
    设置 where 查询条件。可以通过属性 _logic 设置逻辑,默认为 AND。可以通过属性 _complex 设置复合查询。
    
    注:1、以下示例不适合 mongo model,mongo 中设置 where 条件请见 model.mongo 里的 where 条件设定。2where 条件中的值需要在 Logic 里做数据校验,否则可能会有漏洞。

    意思也就是像前面的条件中,它只会默认执行所有and条件,即并列在一起执行,但是我的实际想要的需求却是框中的三个条件并非and而是or查询,在前台页面中它只是一个名称输入框,输入的值(数据库对应name字段)传到后台,这个值便要进行三项查询:name,pinyin,zimu,可是上面的写法,它永远都不会进入到第二个以及的三个条件,自己看了很长时间,最终是知道了sql语句执行有误,但是得把where默认的and条件随意的转化成自己想要的or选择条件,就有点小困难了。从官网中,我知道了where有个方法可以设置复合查询,但是_logic的数据结构是个对象,对于这个写法,自己试了好多种,或许真的是导航太浅,

    红色的框里是自己试了好多遍的错误案例,而绿色框中是经过大神同事指点过的完美条件,那一瞬间,真的对自己无语了。差一点的失误也是不成功的!

    实际上,logic的用法是这样的,后面的参数是一个对象:

  • 相关阅读:
    初学JAVA随记——代码练习(输出半个菱形 for语句嵌套)
    初学JAVA随记——代码练习(体重问题,含switch、if else、三元条件运算符)
    初学JAVA随记——代码练习(二元一次方程)
    初学JAVA——语句的几个要点
    初学JAVA随记——运算符的几个要点2
    初学JAVA——试写if条件代码(自身体重为例)
    初学JAVA——运算符的几个要点
    初学JAVA——栈空间堆空间的理解
    自制刻度尺插件-前端简易实现"腾讯信用"界面
    JavaScript快速查找节点
  • 原文地址:https://www.cnblogs.com/zhengyeye/p/5897557.html
Copyright © 2011-2022 走看看