这是我以前的代码:
cardinalPoints := []string{"75101", "75110", "75112", "75115", "92062"}
query = `SELECT * FROM "DataCom_travel" WHERE ((com1 = $1 AND com2 IN ($2)) OR (com1 IN ($2) AND com2 = $1));`
err := db.Select(&dataComTravel, query, "92050", pq.Array(cardinalPoints))
如何用pgx做到这一点?
pgx.Array似乎不起作用。
发布于 2021-01-21 10:41:01
pq.Array
也将与pgx一起工作。这是因为它所做的就是提供一个包装常规go切片的sql.Scanner/driver.Valuer
实现。这些都是泛型接口。
如果您不想同时导入pgx和pq,您可以将pq.Array
和相关代码复制到您的项目中并创建您自己的版本。只要确保pq的许可允许这一点即可。
编辑:另外,请阅读this,它说pgx直接支持字符串片映射。所以使用普通的cardinalPoints
应该可以。
https://stackoverflow.com/questions/65825144
复制