我迷失在一个看似简单的事情上:
for row in &conn.query("SELECT r.id, r.name, l.name
FROM rating r LEFT JOIN location l ON r.loc_id = l.id", &[]).unwrap() {
let rating = Rating {
id: row.get(0),
name: row.get(1),
};
}
这部分有效。我无法获得的是第三列(row.get(2)
)。
由于LEFT JOIN
,该行可以具有NULL
值。我已经阅读了文档,此处的相关答案以及许多Google页面,无法弄清。
很显然,我想以某种方式使用Option<>
。而且似乎我想使用get_opt()
函数。
在伪代码中,我想要的是这样:
if row[2] is not null,
then $location = row[2]
else $location = null
答案 0 :(得分:0)
尽管不确定是否是正确的解决方案,但我发现了一些可行的方法
let x: Option<f64> = row.get(1);
if let Some(_i) = x {
// do something
}