Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在不使用两个for循环的情况下迭代MySQL数据库中的各种记录?_Mysql_Rust - Fatal编程技术网

是否可以在不使用两个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恐怕有人欺骗了你。将答案作为答案是一种常见的做法,并且极不鼓励在问题中给出答案。