【问题标题】:Update sql database with multiple WHERE clauses in java在java中使用多个WHERE子句更新sql数据库
【发布时间】:2012-04-09 08:54:19
【问题描述】:

我有一个需要更新的数据库条目。

这种方法显然行不通,但它应该有助于解释我想要做什么。

public void updateEntry(String user, String message, String mentions, String og) {
    ContentValues args = new ContentValues();
    args.put(KEY_MESSAGE, message);
    args.put(KEY_MENTIONS, mentions);
    this.db.update(ENTRY_TABLE, args, ("message = ?", "username = "+user), new String[] {og});
}

我需要更新“名称”列和“消息”列都与输入值匹配的条目。

数据库有多个同一个用户的条目,并且可能有多个具有相同消息但用户不同的整体,因此需要多个where子句。

如何在 sql 查询中使用两个(或多个)where 子句?

【问题讨论】:

    标签: java android sql database


    【解决方案1】:

    这个改变应该会起作用..

    this.db.update(ENTRY_TABLE, args, ("message = ? AND username = "+user), new String[] {og});
    

    【讨论】:

    • 太棒了!谢谢你。我一直在尝试&&。我没有过多地使用 SQL,所以我一直不完全确定语法。
    • 更正确的做法是同时输入“username = ?”并按照@secretlm 建议的方式将“用户”变量放入字符串数组中。
    【解决方案2】:

    您可以使用两个(或更多)where 子句,例如:

    this.db.update(ENTRY_TABLE, args, ("message = ? and Field1 =? and Field2 =? and username = "+user), new String[] {og});
    

    Fields的值由og(array)提供

    【讨论】:

      【解决方案3】:

      使用

      db.rawQuery(your SQL update query);
      

      【讨论】:

        【解决方案4】:

        我不熟悉 Java 语法,但在 SQL 中,您可以使用 AND 连接多个 WHERE 子句。像这样的:

        WHERE message = 'foo' AND username = 'bar'
        

        【讨论】:

          猜你喜欢
          • 2018-09-11
          • 2013-02-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-06-10
          • 2012-10-11
          相关资源
          最近更新 更多