如果我们需要根据给定列的某些值集查询表,我们可以简单地使用 IN 子句。
但是如果需要基于多个列进行查询,我们不能使用IN子句(在SO线程中grepped。)
从其他 SO 线程,我们可以使用连接或存在子句等来规避这个问题。但是如果主表和搜索数据都在数据库中,它们都可以工作。
E.g
User table:
firstName, lastName, City
给定 (firstname, lastName) 元组的列表,我需要获取城市。
我可以想到以下解决方案。
1
构造一个选择查询,例如,
SELECT city from user where (firstName=x and lastName=y) or (firstName=a and lastName=b) or .....
2
将所有 firstName、lastName 值上传到临时表中,并在“用户”表和新临时表之间执行连接。
有没有解决这个问题的选项,一般来说解决这个问题的首选是什么?