代码之家  ›  专栏  ›  技术社区  ›  kenlz

多in子句gocql未执行

  •  1
  • kenlz  · 技术社区  · 8 年前

    从gocql运行查询时出现问题,但从控制台运行正常。

      DELETE            
        FROM 
            honda.car_v1 
        WHERE 
            (id in ?)
            AND
            (user_id in ?)
    

    我试着在cql控制台中运行这个,它运行得很好,但当我通过 https://github.com/gocql/gocql 它没有给出任何错误,但行仍然存在。我想知道我做错了什么。

    1 回复  |  直到 8 年前
        1
  •  0
  •   kenlz    8 年前

    id:=[]int{10,20,30}

    用户数据:=[]int{1,2,3,4}

    这与gocql本身无关。事实证明,我将数组转换为逗号分隔的值的方法将列表转换为字符串,这是无效的,因为

    id现在是“10,20,30”,userData现在是“1,2,3,4”,它被发送到如下查询

    DELETE            
    FROM 
        honda.car_v1 
    WHERE 
        (id in '10,20,30')
        AND
        (user_id in '1,2,3,4')
    

    我需要他们像

    DELETE            
    FROM 
        honda.car_v1 
    WHERE 
        (id in 10,20,30)
        AND
        (user_id in 1,2,3,4)
    

    所以我只做了一个简单的字符串格式化来解决这个问题。