I have a list of item type and item numbers like follows:
items := models.ItemKeys{
ItemKeys: []models.ItemKey{
{
ItemType: "type1",
ItemNumber: "10347114",
},
{
ItemType: "type2",
ItemNumber: "40428383",
},
{
ItemType: "type3",
ItemNumber: "90351753",
},
},
}
I would like to produce this kind of query:
SELECT * FROM item
WHERE (item_type, item_number) IN (('type1','10347114'), ('type2','40428383'), ('type3','90351753'))
it is worth mentioning that I'm using pq package (https://github.com/lib/pq). I happen to find there is a way using ANY
instead. However, when I try it, it says sql: converting argument $1 type: pq: Unable to convert models.ItemKeys to array
Here is my current code:
rows, err := r.Db.QueryContext(ctx, "SELECT * "+
"FROM item "+
"WHERE (item_type, item_number) = ANY($1) "+
"AND deleted_dtime IS NULL", pq.Array(items))
Does anyone have a clue how to do it correctly?