Обновление Android Sqlite только в первом ряду - PullRequest
0 голосов
/ 25 сентября 2019

Мне нужно обновить только первую строку определенной команды SQL-запроса

мой код:

SQLiteDatabase db = this.getWritableDatabase();
    String strSQL = "UPDATE table SET column = something WHERE  name = john AND age = 10";
    db.execSQL(strSQL);

У меня есть 5 результатов с одинаковыми критериями name = john иage 10

Это работает для обновления последнего элемента, однако я хочу, чтобы он обновлял результат первой строки только в предложении WHERE.как это возможно?

Ответы [ 3 ]

1 голос
/ 25 сентября 2019

попробуйте это:

String strSQL = "UPDATE table SET column = something WHERE id IN (SELECT id FROM table WHERE name = john AND age = 10 LIMIT 1)";
0 голосов
/ 25 сентября 2019

Первый: (в вашем случае) Если вы хотите обновить только первую строку, добавьте еще один параметр в вашу таблицу.Это поможет вам найти эту запись уникально

Секунда: Не используйте запрос на обновление, подобный этому

    String strSQL = "UPDATE table SET column = something WHERE  name = john AND age = 10";

Сделайте это , как это вместо

0 голосов
/ 25 сентября 2019

Если указан идентификатор PK, попробуйте

UPDATE table 
SET column = something 
WHERE id = (SELECT min(t2.id) 
            FROM table t2 
            WHERE t2.name = 'john' AND t2.age = 10)
...