Выбор части столбцов в SQLite в Dart
Звездочка * в SELECT тянет все колонки.
Чаще перечисляют явный список - так меньше данных
и проще читать результат.
Таблица может хранить служебные поля, которые в отчет не попадают. В запросе оставляют только нужные имена:
import 'package:sqlite3/sqlite3.dart';
var db = sqlite3.open('partial_view.db');
db.execute('''
CREATE TABLE IF NOT EXISTS devices (
id INTEGER PRIMARY KEY,
serial TEXT NOT NULL,
note TEXT,
warranty_until TEXT
)
''');
db.execute('''
INSERT INTO devices (serial, note, warranty_until)
VALUES ('SN-44', 'lab unit', '2027-01-01')
''');
var rows = db.select(
'SELECT serial, warranty_until FROM devices',
);
for (var row in rows) {
print(row['serial']);
print(row['warranty_until']);
}
db.dispose();
Порядок имен в списке задает порядок столбцов в строке. Чтение по имени надежнее при изменении запроса:
import 'package:sqlite3/sqlite3.dart';
var db = sqlite3.open('partial_view.db');
var rows = db.select(
'SELECT note FROM devices WHERE serial = ?',
['SN-44'],
);
if (rows.isNotEmpty) {
print(rows.first['note']);
}
db.dispose();
Создайте таблицу lots в batch.db
с полями code, qty и comment,
добавьте партию и выведите только code
и qty.
Выведите comment для партии с кодом
"B-12", не выбирая остальные столбцы.