whereIn method
Find records with custom conditions
Implementation
Future<List<T>> whereIn(String field, List<dynamic> values) async {
if (values.isEmpty) return [];
if (DB.driver == DBDriver.mysql) {
// For MySQL, use positional parameters
final placeholders = List.generate(values.length, (_) => '?').join(', ');
final result = await DB.query(
'SELECT * FROM ${table.name} WHERE $field IN ($placeholders)',
positionalParams: values,
);
return result.map((map) => fromMap(_convertDatabaseTypes(map))).toList();
} else {
// For PostgreSQL, use named parameters
final placeholders =
List.generate(values.length, (i) => ':value$i').join(', ');
final params = {
for (var i = 0; i < values.length; i++) 'value$i': values[i]
};
final result = await DB.query(
'SELECT * FROM ${table.name} WHERE $field IN ($placeholders)',
namedParams: params,
);
return result.map((map) => fromMap(_convertDatabaseTypes(map))).toList();
}
}