【发布时间】:2021-06-07 22:27:29
【问题描述】:
我正在用 Haskell 研究 PostgreSQL 和这个库:https://hackage.haskell.org/package/postgresql-simple-0.4.10.0/docs/Database-PostgreSQL-Simple.html#v:query
虽然我可以像这样选择用户:
(query_ conn "SELECT * FROM users WHERE NAME == john" :: IO [Only Int]) >>= mapM_ print
使用query_:
query_ :: FromRow r => Connection -> Query -> IO [r]
我想我应该使用query:
query :: (ToRow q, FromRow r) => Connection -> Query -> q -> IO [r]
传递一个值列表。但是,如何通过此列表?
例如,对于INSERT,我可以这样做:
(execute conn "INSERT INTO users (NAME, PASSWORD) VALUES (?,?)") (["john", "123456"]::[String]) >>= print
但是SELECT 的等价物是什么?
【问题讨论】:
-
没有关于你想用 SELECT 做什么的例子,但是你应该使用
query,就像你使用execute一样——通常你会通过一个元组的值应该放在?参数中 - 列表更适合In这样的组合器 - 你可以添加你想要查询的 SELECT-Statement 吗?
标签: postgresql haskell