Как использовать сортировку orderBy в sqflite во Flutter?
Как отсортировать список по возрастанию / убыванию в базе данных sqflite?
В интернете все примеры ограничиваются следующим кодом:
result = await db.query(tableName,
columns: columns,
where: 'columnName LIKE ?',
whereArgs: ["%$query%"]
);
Но нигде нет примеров использования в этой конструкции "orderBy: ".
Как правильно сделать сортировку по возрастанию / убыванию?
Ответы (2 шт):
Автор решения: dut
→ Ссылка
Могу предложить Вам два варианта:
если посмотрите сигнатуру метода query, то можете обратить внимание что у него есть необязательный параметр orderBy, через который можно передать по какому столбцу сортировать, типа:
result = await db.query(tableName, columns: columns, orderBy: 'sum ASC' where: 'columnName LIKE ?', whereArgs: ["%$query%"] );для запросов можно не использовать обёртки, а написать в строку сам запрос и передать его методу rawQuery, что-то типа:
final sql = 'SELECT * FROM $tableName WHERE id = ? ORDER BY $column DESC'; await rawQuery(sql, [id]);
Автор решения: Andrew Levitsky
→ Ссылка
Можно это легко сделать с уже полученной коллекцией:
result.sort((a, b) => a.someProperty.compareTo(b.someProperty));