Sql 从数据库中删除一行

Sql 从数据库中删除一行,sql,delete-row,Sql,Delete Row,我在删除一行时遇到问题。我可以插入和删除整个表。为了只删除一行,我不能理解整个ID,我在看一些示例,但我看不懂。这让我抓狂,任何帮助都将不胜感激。 这里是sqlite类 public class datahelper { private static final String DATABASE_NAME = "table.db"; private static final int DATABASE_VERSION = 1; private static final String

我在删除一行时遇到问题。我可以插入和删除整个表。为了只删除一行,我不能理解整个ID,我在看一些示例,但我看不懂。这让我抓狂,任何帮助都将不胜感激。 这里是sqlite类

public class datahelper {
   private static final String DATABASE_NAME = "table.db";
   private static final int DATABASE_VERSION = 1;
   private static final String TABLE_NAME = "table1";

   private Context context;
   private SQLiteDatabase db;
   private SQLiteStatement insertStmt;

   private static final String INSERT =
      "insert into " + TABLE_NAME + "(name) values (?)";

   public datahelper(Context context) {
      this.context = context;
      OpenHelper openHelper = new OpenHelper(this.context);
      this.db = openHelper.getWritableDatabase();
      this.insertStmt = this.db.compileStatement(INSERT);
   }

   public long insert(String name) {
      this.insertStmt.bindString(1, name);
      return this.insertStmt.executeInsert();
   }

   public long insert2(String name) {
          this.insertStmt2.bindString(1, name);
          return this.insertStmt2.executeInsert();
   }

   public void deleteAll() {
      this.db.delete(TABLE_NAME, null, null);
   }

   private static class OpenHelper extends SQLiteOpenHelper {
      OpenHelper(Context context) {
         super(context, DATABASE_NAME, null, DATABASE_VERSION);
      }

      @Override
      public void onCreate(SQLiteDatabase db) {
         db.execSQL("CREATE TABLE " + TABLE_NAME +
                    " (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)");
   }
}
执行查询

DELETE FROM TABLE_NAME WHERE id = SOMEVALUE

编辑:根据您的反馈,它看起来像您正在使用,这提供了。我猜你会这么做:

public void delete(int id) {
    this.db.delete(TABLE_NAME, 'id = ?', new String[] { id.toString() });
}

(原始答复…)

使用带有WHERE子句的DELETE语句,该语句只删除具有要删除的id的行:

DELETE FROM <tablename> WHERE id = ?
a如果要删除某个名称(假定该名称是唯一的),请执行以下操作:

从其中删除name=?

让我困惑的是,我不能只键入代码,我认为它必须看起来像这个公共的void delete(String id){this.db.delete(TABLE_NUM,“id=?”,null);}@Mark:Ah,我刚刚想到你正在使用一个特定的SQLite包装器(可能是Android?),它提供了一个方便的删除方法。如果您:a)指出您的操作系统/语言/SDK,这将非常有帮助;b) 在问题中包括您执行删除的失败尝试。
SELECT last_insert_rowid()
DELETE FROM <tablename> WHERE name = ?