使用 psql 数组将 pq 迁移到 pgx 的问题

Migrating problem using psql array for pq to pgx

这是我的旧代码:

cardinalPoints := []string{"75101", "75110", "75112", "75115", "92062"}
query = `SELECT * FROM  "DataCom_travel" WHERE ((com1 =  AND com2 IN ()) OR (com1 IN () AND com2 = ));`
err := db.Select(&dataComTravel, query, "92050", pq.Array(cardinalPoints))

pgx 怎么办?

pgx.Array 似乎不起作用。

pq.Array 也适用于 pgx。这是因为它所做的只是提供一个 sql.Scanner/driver.Valuer 包装常规 go 切片的实现。这些是通用接口。

如果您不想同时导入 pgx 和 pq,您可以将 pq.Array 和相关代码复制到您的项目中并创建您自己的版本。只要确保 pq 的许可允许即可。

编辑:此外,只需阅读 this,它表示 pgx 直接支持字符串切片映射。所以使用普通 cardinalPoints 应该可行。