目前我有:
/// The format which SQLx will use to return our rows.
#[derive(sqlx::FromRow, Debug)]
struct FooRow {
foo: String,
}
pub async fn page(
Extension(pool): Extension<PgPool>,
...
) -> PageTemplate {
// find the available callsigns
let rows = sqlx::query_as::<_, FooRow>(r#"SELECT foo FROM bar GROUP BY foo"#)
.fetch_all(&pool)
.await
.unwrap();
let foos: Vec<String> = rows.into_iter().map(|foo_row| foo_row.callsign).collect();
字符串String
没有实现FromRow
,所以我总是需要一个 Package 器结构。
有没有更简洁的方法从SQLx中获取String
列,而不需要 Package 器结构和迭代Map?
2条答案
按热度按时间axr492tv1#
使用
query_scalar
,这是用于此确切目的的函数:字符串
8xiog9wr2#
是的,有。最多9个组件的元组类型也实现了
FromRow
,所以如果你的查询返回一个列,一个单项元组就足够了。字符串