我有一个包含字段 group_id 和 group_type 的表,我想从元组列表中查询具有任何元组(组 id、组类型)的所有记录。例如,我希望能够执行以下操作:
SELECT *
FROM mytable
WHERE (group_id, group_type) IN (("1234-567", 2), ("4321-765", 3), ("1111-222", 5))
一个非常类似的问题已经被问到:using tuples in sql in Clause,但是那里提出的解决方案假定元组列表是从另一个表中获取的。这在我的情况下不起作用,因为元组值是硬编码的。
一种解决方案是使用字符串连接:
SELECT *
FROM mytable
WHERE group_id + STR(group_type, 1) IN ("1234-5672", "4321-7653", "1111-2225")
但问题是表很大,对每条记录进行字符串连接和转换会非常昂贵。
有什么建议吗?