Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana saya bisa menjumlahkan nilai dalam database kamar android

Coba tambahkan metode berikutnya di dao Anda:

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

Kemudian Anda dapat memanggilnya dari ViewModel/Activity

PERBARUI

Untuk metode tunggal untuk memperbarui/menyisipkan, letakkan metode ini di 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)
}

Tentu saja Anda harus menambahkan metode updateOrInsertSum ke repositori dan model tampilan Anda jugaKemudian jika Anda memanggil id ='1' untuk pertama kalinya nilai akan dimasukkan:

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

Pada item panggilan berikutnya akan diperbarui dengan metode yang sama:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menghitung perbedaan tanggal MySQL dan PHP dalam hitungan hari

  2. Node Mysql Tidak Dapat Mengantrekan kueri setelah memanggil quit

  3. MySQL (atau PHP?) mengelompokkan hasil berdasarkan data lapangan

  4. mengunggah banyak format file ke server menggunakan jsp dan menyimpan jalurnya di database

  5. Apache - Layanan MySQL terdeteksi dengan jalur yang salah. / Port sudah digunakan