sql >> Database teknologi >  >> RDS >> SQLite

Vil du slette flere rækker ved hjælp af id'er?

Når du giver en enkelt streng som whereArgs , en enkelt streng ender i SQL-kommandoen, som om du havde skrevet dette:

... WHERE _id IN ('1,2,42')

Dette ville sammenligne hver _id værdi mod værdien '1,2,42' , hvilket selvfølgelig ikke virker.

Hvis du bruger tre parametermarkører og giver tre strenge i whereArgs array, ville du ende med tre strenge, som denne:

... WHERE _id in ('1','2','42')

Dette virker kun, når _id kolonne har heltals affinitet, hvilket er sandt for en kolonne, der er erklæret som INTEGER PRIMARY KEY, men ikke i det generelle tilfælde.

Android-database-API'en tillader ikke forespørgselsparametre at have andre typer end streng. Når du bruger heltal, skal du bare indsætte dem direkte (som i ianhanniballakes svar):

String whereClause = getIdColumn() + " IN (" + TextUtils.join(",", ids) + ")";


  1. Opret en tabel med komprimering i SQL Server (T-SQL)

  2. Dvale gemmer brugermodel til Postgres

  3. Præstationsproblemer:Det første møde

  4. Sådan opretter du et indeks i Django uden nedetid