美文网首页
Sql where in 多个参,操作单条数据有问题?

Sql where in 多个参,操作单条数据有问题?

作者: 南岩飞雪 | 来源:发表于2019-03-29 18:52 被阅读0次

问题

  • 如下写法在queryList的size等于1的时候,会出错
   <delete id="batchDeleteByQueryList">
        delete from xxx where corp_id = #{corpId} and (user_id, active_time) in
        <foreach collection="queryList" item="item" separator="," open="(" close=")">
            (#{item.userId}, #{item.activeTime})
        </foreach>
   </delete>
  • 报错
Where in: Operand should contain 2 column(s)

临时解决,大家可以深挖

  • 后来发现阿里云tddl分库分表有问题,mysql没问题
  • 单条数据特殊处理下
   <delete id="deleteByUserIdAndActiveTime">
        delete from xxx
        where corp_id = #{corpId} and user_id = #{userId} and active_time = #{activeTime} 
   </delete>

原因

  • queryList的size等于1,foreach里拼接结果少了一对括号

参考

https://github.com/hiddentao/squel/issues/332

相关文章

  • Sql where in 多个参,操作单条数据有问题?

    问题 如下写法在queryList的size等于1的时候,会出错 报错 临时解决,大家可以深挖 后来发现阿里云td...

  • 第五课 高级数据过滤

    利用 WHERE 子句使用 NOT 和 IN 操作符 一、组合WHERE子句 为更强的过滤,SQL允许多个 WHE...

  • 十三、SQL IN 操作符

    IN 操作符 IN 操作符允许我们在 WHERE 子句中规定多个值。 SQL IN 语法 SELECT colum...

  • 51 SQL 复习 语句关系代数(二)

    SELECT 查询指定多个列 关系代数 操作 关系代数与SQL 练习 WHERE 去重 查询结果排序 BETWEE...

  • 数据库的增、删、查、改

    创建数据表 往数据表中插入单条数据 插入多条数据:mysqli_multi_query($conn,$sql) 使...

  • sparksql窗口函数原理

    一、窗口函数是啥 在单表数据操作中,一般有下面两种操作范式: 针对单条数据的映射操作,例如每条数据加一的时候。 将...

  • SQL优化

    一、SQL语句编写注意问题 下面就某些SQL语句的where子句编写中需要注意的问题作详细介绍。在这些where子...

  • golang orm中where in的坑

    背景:单据有多个状态,不同文字定义的列表可能有多个状态单据组成,这时候我们就需要用where in。 一般来说多个...

  • Spark难点解析:Join实现原理

    Join背景介绍 SQL的所有操作,可以分为简单操作(如过滤where、限制次数limit等)和聚合操作(grou...

  • iOS 获取本地相册图片视频(一)

    本文代码内容适合跳转本地相册界面, 例如: 单图操作, 单视频操作. 多个图操作, 多个视频操作参考 iOS 获取...

网友评论

      本文标题:Sql where in 多个参,操作单条数据有问题?

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