rust - 处理 rust-postgres 中的 NULL 列
问题描述
我迷失在看似简单的事情上:
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
解决方案
我发现了一些可行的方法,但我不确定它是否是正确的解决方案:
let x: Option<f64> = row.get(1);
if let Some(_i) = x {
// do something
}
推荐阅读
- php - 将数据库结果表转换为聚合相似值的有意义的输出
- java - 尝试查找客户时,在“类 [rewards_grails.Customer] 上的方法已在 Grails 应用程序之外使用”中出现错误
- vue.js - 像 Angular 一样在 Vue 中创建服务
- java - Mockito thenReturn() 返回空值
- reactjs - 当运行 this._login `this.navigation` 是 `undefined`
- javascript - preventDefault() 无法处理表单请求
- java - 在另一个 Runnable 实现类中传递 Runnable 实例,其中前者的 run() 方法需要后者的引用
- php - 重写规则 htaccess 让我发疯
- excel - 如何避免使用“插入复制的单元格”
- python - FPDF 错误的 set_xy 和 get_string_width