Db.selectRows
Db.selectRows($sql, $whereMap={}) -> list
Description
Return the result of a SQL 'select' statement as a List of Maps.
Each Map represents one row of the result.
Note: A value will be converted to a Date object if it is a date/time column type, or if the column name ends in “date”.
$query = sql'SELECT id, name FROM users ORDER BY name'
$users = Db.selectRows($query)
// [
//     { id: 1, name: 'ann' }
//     { id: 3, name: 'bob' }
//     { id: 2, name: 'cody' }
// ]
foreach $users as $user {
    print($user.name)
}
//= 'ann'
//= 'bob'
//= 'cody'
Where Map
If $whereMap is given, a dynamic WHERE clause will be appended to the query.
In addition to column names, keys can include limit, orderBy, and orderByDesc.
$where = {
    isDeleted: 0
    'publishDate >': Date.create('1 year ago')
    orderByDesc: 'publishDate'
    limit: 10
}
Db.selectRows('SELECT * FROM posts', $where)
// Runs Query:
//   SELECT * FROM posts
//   WHERE isDeleted = 0
//   AND publishDate > '2020-06-13 00:00:00'
//   ORDER BY publishDate DESC
//   LIMIT 10
Where In Values
You can pass a list of values for a where in query, like this:
$sql = sql'''
    SELECT * FROM products
    WHERE productId IN ({productIds})
'''
$sql.fill({ productIds: [11, 22, 33] })
You can also pass it in via $whereMap.
$whereMap = { 'productId in': [11, 22, 33] }
Db.selectRows(sql'SELECT * FROM products', $whereMap)