是否可以在不使用两个for循环的情况下迭代MySQL数据库中的各种记录?
这是我的代码:是否可以在不使用两个for循环的情况下迭代MySQL数据库中的各种记录?,mysql,rust,Mysql,Rust,这是我的代码: use mysql::*; use mysql::prelude::*; #[derive(Debug, PartialEq, Eq)] struct Persone { id: i32, email: String, } fn main() { let url = "mysql://root:9211@localhost:3306/test"; let pool = Pool::new(url).unwrap(); let mut c
use mysql::*;
use mysql::prelude::*;
#[derive(Debug, PartialEq, Eq)]
struct Persone {
id: i32,
email: String,
}
fn main() {
let url = "mysql://root:9211@localhost:3306/test";
let pool = Pool::new(url).unwrap();
let mut conn = pool.get_conn().unwrap();
let select_all = conn.query_map(
"SELECT id, email FROM persone", |(id, email)| { Persone { id, email } },
);
for row in select_all.iter() {
for p in row {
println!("{} - {}", p.id, p.email);
}
}
}
我是这样解决的:
for row in select_all.iter().flatten() {
println!("{} - {}", row.id, row.email);
}
是的,您需要处理,例如与接线员一起处理
您无意中在
Result
上迭代,好像它是一个集合,但这是一种非常不寻常的使用方式<代码>国际热核实验反应器().flatte()对一个结果是个坏主意,除非你打算默默地忽略错误。你的问题感觉相当于“我如何访问一个城市的每个街区,而不必从北到南,从东到西”。选择所有。国际热核实验反应器().flatte()
或添加正确的错误处理,例如,在选择所有中为p添加?{}
你能找到问题的答案真是太好了!你应该把它作为一个答案而不是对你的问题进行编辑,然后潜在地接受这个答案。这样,问题就会在搜索结果中显示为已解决,人们可以对你的答案进行投票,你的解决方案会对未来有同样问题的人更有帮助。@matteo恐怕有人欺骗了你。将答案作为答案是一种常见的做法,并且极不鼓励在问题中给出答案。