1

是否可以使用SORM 框架从数据库中仅获取一个字段?

我在普通 SQL 中想要的是:

SELECT node_id FROM messages

我似乎无法以某种形式重现这一点。我知道这可能违反了 sorm 的工作方式,但现在我有两张带有不同类型消息的大桌子。node_id我被要求从两个表中获取所有唯一的 s。

我知道我可以使用 sorm 查询两个表并解析所有数据,但我想让数据库正常工作。node_id显然,如果在单个 db 调用中只能获得唯一的 s,这会更好。

现在只查询所有内容并解析它,它花费的时间太长了。

4

1 回答 1

0

似乎没有对您想要做的事情的 ORM 支持,除非node_id碰巧是您的Message对象的主键:

val messages = Db.query[Message].fetchIds()

在这种情况下,您不必担心它是UNIQUE,因为根据定义,主键是唯一的。或者,您可以运行自定义 SQL 查询:

Db.fetchWithSql[Message]("SELECT DISTINCT node_id FROM messages")

请注意,后者可能输入错误:您必须针对您的数据库进行尝试。您可能需要fetchWithSql[Int]或其他一些变体:不清楚 SORM 在未查询主键的情况下会做什么。

于 2016-08-18T22:30:10.337 回答