【问题标题】:using postgresql NOT IN statement [duplicate]使用 postgresql NOT IN 语句 [重复]
【发布时间】:2019-05-17 16:03:03
【问题描述】:

我在春天有这个查询:

 private String SQL_Clear_Deleted_Options = "DELETE FROM vote_votes WHERE poll_id=? AND option_id NOT IN ?"

我的问题是第二个?。正确的形式是 (id1,id2,id3,...)。如何将cl="0,1,2,3,6" 之类的字符串传递给此查询?

我正在使用 jdbcTemplate。所以会是

jdbcTemplate.update(SQL_Clear_Deleted_Options, id,cl)

应该是什么?

【问题讨论】:

    标签: java sql postgresql


    【解决方案1】:

    您可以使用 PreparedStatement 的 setArray 来设置多个值。 https://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html#setArray(int,%20java.sql.Array)

    并且该数组应该是正确的类型,因此您可以使用 Connection.createArrayOf 函数创建它: https://docs.oracle.com/javase/7/docs/api/java/sql/Connection.html#createArrayOf(java.lang.String,%20java.lang.Object[])

    您已经可以在 SO 上看到很多关于该主题的讨论,例如: How to use an arraylist as a prepared statement parameter

    编辑:忘了提:当数组作为参数给出时,JdbcTemplate 应该正确设置参数。

    【讨论】:

      猜你喜欢
      • 2017-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-04
      • 2014-08-02
      • 1970-01-01
      相关资源
      最近更新 更多