我有一个包含 group _ id 和 group _ type 字段的表,我希望查询该表,从元组列表中查询所有具有任何元组(组别编号,团体类型)的记录。例如,我希望能够这样做:
SELECT *
FROM mytable
WHERE (group_id, group_type) IN (("1234-567", 2), ("4321-765", 3), ("1111-222", 5))
在 在子句中使用 sql 中的元组中已经提出了一个非常类似的问题,但是提出的解决方案假定元组列表是从另一个表中获取的。这在我的情况下不工作是元组值是硬编码的。
一种解决方案是使用字符串连接:
SELECT *
FROM mytable
WHERE group_id + STR(group_type, 1) IN ("1234-5672", "4321-7653", "1111-2225")
但问题是这个表非常大,并且为每条记录执行字符串串联和转换将非常昂贵。
有什么建议吗?