sql >> Database teknologi >  >> RDS >> Mysql

Hvordan kan jeg summere værdien i rumdatabasen på Android

Prøv at tilføje næste metode i din dao:

@Query("UPDATE sum SET value = value + :addValue WHERE id =:id")
suspend fun updateSum(id: Int, addValue: Long)

Så kan du kalde det fra din ViewModel/Activity

OPDATERING

For en enkelt metode til opdatering/indsæt indsæt disse metoder i dao:

@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun insertSum(model: Sum)

@Query("UPDATE sum SET value = value + :value WHERE id = :id")
suspend fun updateSum(id: Int, value: Long)

@Query("SELECT * FROM sum WHERE id = :id")
suspend fun getSumById(id: Int): Sum?

@Transaction
suspend fun updateOrInsertSum(sum: Sum) { // <-- this method updates value or insert new item, if id is not found
    getSumById(sum.id)?.let { updateSum(sum.id, sum.value) } ?: insertSum(sum)
}

Selvfølgelig skal du tilføje metoden updateOrInsertSum til dit lager og din visningsmodel. Hvis du kalder på id ='1' for første gang, vil værdien blive indsat:

viewmodel.updateOrInsertSum(Sum(1 ,10000)) // <-- id = 1, value = 10000

På næste udkald vil emnet blive opdateret med samme metode:

viewmodel.updateOrInsertSum(Sum(1 ,20000)) // <-- id = 1, value = 10000+2000 


  1. Oracle/SQL:Hvorfor forespørger SELECT * FROM records WHERE rownum>=5 AND rownum <=10 - returnerer nul rækker

  2. Er der en enkel måde at konvertere MySQL-data til Title Case?

  3. Hvordan UNDTAGET virker i PostgreSQL

  4. Indre joinforbindelse mellem tre borde i mysql