お聞きしたいこと
sqlx
ライブラリとGoを使って、IDを取得したい。- where文で絞り込む時に、配列の値を使いたい。
環境
- Go 1.19.3
- sqlx
- PostgreSQL
具体的な環境
DB
userテーブル
order_id | user_id | name |
---|---|---|
1 | 111 | 田中 |
2 | 222 | 佐藤 |
3 | 333 | 鈴木 |
4 | 444 | 中島 |
コード
go
1func main() { 2 var useIDs []string 3 useIDs = append(useIDs, "111", "333") 4 5 orderIDs, err := listOrderIDByUseID(conn, useIDs) 6 if err != nil { 7 fmt.Println(err) 8 } 9 10 fmt.Println(orderIDs) 11} 12 13func listOrderIDByUseID(conn repository.DBconn, useIDs []string) ([]string, error) { 14 var rows []string 15 // WHERE文で useIDs の配列を渡して、該当する order_id の配列を返したい (下記は上手く行かなかったコード) 16 err := conn.Select(&rows, 17 ` 18 SELECT 19 u.order_id 20 FROM user AS u 21 WHERE 22 u.user_id = ANY($1) 23 `, 24 pq.Array(useIDs), 25 ) 26 27 if err != nil { 28 return nil, err 29 } 30 31 return rows, nil 32}
希望の出力結果
❯ go run main.go [1 3]
試したこと
conn.Select
内のWHERE
で指定するuseID
をrangeで回して渡しましたが、上手くいきませんでした- 参考記事: golangでpostgresを操作する。
さいごに
詳しい方ご教授いただけますと嬉しいです!
よろしくお願いいたします!!
もしかして、user テーブルの user_id は integer 型ではないでしょうか?

回答1件
あなたの回答
tips
プレビュー