1***@qq.com
1***@qq.com
  • 发布:2021-12-30 15:04
  • 更新:2021-12-30 16:05
  • 阅读:247

数据库聚合操作关于match的问题

分类:uniCloud


当我把or放到一个match里面的时候只有第一个or是执行,分成两个match分别放之后就两个or都执行了,是match里只能有一个or吗?还是我哪里写错了。。。

2021-12-30 15:04 负责人:无 分享
已邀请:
DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

怎么判断执行不执行的?

  • 1***@qq.com (作者)

    一开始我是把goodsid: .or(_.eq(info.id), .eq(info.goods_id))跟"orderInfo.userid": .or(_.eq(userInfo.id), .eq(userInfo.user_id)),放在同一个match里面,出来的数据没有跟"orderInfo.userid": .or(_.eq(userInfo.id), .eq(userInfo.user_id))这个条件匹配,后面分别放到两个match里面后数据就跟两个条件匹配了。。。

    2021-12-30 16:24

  • DCloud_uniCloud_WYQ

    回复 1***@qq.com: 我这造了点数据测试了下没能复现你的问。看下是不是看错了,orders是一个数组,里面只要某一项满足你的条件就会匹配到整条goods记录。另外你的or没必要写成这样吧,直接js里面计算好到底用哪个值不就行了吗?

    2021-12-31 11:39

  • 1***@qq.com (作者)

    回复 DCloud_uniCloud_WYQ: SELECT * from tp_order_goods og left join tp_order o on o.order_id = og.order_id where og.goods_id = 146 and o.add_time <= 1638288000 and o.add_time >= 1606752000 and o.user_id = 146 and o.order_status in (0,1,2)我想实现的是这样的sql语句 or and or ,没在js计算主要是这个数据是从mysql里面迁移过来的,里面已经用order_id,goods_id这些作为外键了,但是以后用这个数据库的或就要使用_id作为外键,所以or就这样用了。。。

    2021-12-31 13:37

该问题目前已经被锁定, 无法添加新回复