Как получить id строки по значению одной из колонок в sqlite на android?

Пользователь

от nelle , в категории: Другие , год назад

Как получить id строки по значению одной из колонок в sqlite на android?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от bart , год назад

@nelle 

Чтобы получить id строки по значению одной из колонок в SQLite на Android, вы можете использовать следующий SQL-запрос:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
String columnName = "имя_колонки";
String columnValue = "значение_колонки";

String query = "SELECT _id FROM таблица WHERE " + columnName + " = ?";
String[] selectionArgs = {columnValue};

Cursor cursor = db.rawQuery(query, selectionArgs);
if (cursor.moveToFirst()) {
    int id = cursor.getInt(cursor.getColumnIndex("_id"));
    // Используйте id как необходимо
}

cursor.close();


Здесь db - это объект SQLiteDatabase, представляющий вашу базу данных. Вы должны заменить "имя_колонки", "значение_колонки" и "таблица" соответствующими значениями.

Пользователь

от gage , 6 месяцев назад

@nelle 

Приведенный вами код действительно дает общее представление о том, как получить id строки по значению одной из колонок в SQLite на Android. Однако хотелось бы добавить несколько комментариев и уточнений к коду:

  1. Убедитесь, что в вашей таблице есть индекс для колонки, по которой вы выполняете поиск, чтобы оптимизировать запрос.
  2. Ваш запрос предполагает, что значение колонки имеет тип текста (строки). Если тип колонки, по которой вы ищете, не является текстовым, вам может потребоваться соответствующим образом обработать значение колонки в запросе.
  3. Учтите, что в вашем SQL-запросе вы используете подстановку значений вместо прямой вставки значений, это помогает избежать SQL-инъекции.
  4. При использовании SQLite на практике убедитесь, что управляете жизненным циклом курсора и базы данных (закрытием курсора и базы данных), чтобы избежать утечек ресурсов.


Будьте внимательны при реализации вышеприведенного кода и применении к вашему проекту.