我几乎没有使用SQL的经验,现在我正在使用JDBC连接到我的数据库。 我使用的是sqlite,我的架构如下:
id1, id2, value1, value2
我想根据给定的id1和id2对列表提取行。 我知道Postgresql可以做到
SELECT *
FROM table
WHERE ("id1", "id2") IN (('1', '2'), ('3', '4'));
但是sqlite怎么样?
答案 0 :(得分:1)
您可以使用OR
- 条件:
SELECT *
FROM table
WHERE (id1='1' and id2='2') OR
(id1='3' and id2='4')
答案 1 :(得分:1)
你可以这样做:
SELECT *
FROM table
WHERE (id1 = '1' AND id2= '2') OR (id1='3' AND id2='4');
答案 2 :(得分:0)
如果你有一个很长的清单,你可以这样做
SELECT *
FROM table
WHERE (id1 in('1','11','111') and id2 in ('22','2','222')) OR
(id1 in('333','33','3') and id2 in('444,'44','4')')
答案 3 :(得分:0)
从版本3.15.0开始,SQLite支持row values:
SELECT *
FROM MyTable
WHERE (id1, id2) IN (VALUES ('1', '2'), ('3', '4'));
答案 4 :(得分:-1)
而不是IN
,您可以使用JOIN
使用两个字段:
SELECT U.*
FROM Table U
INNER JOIN Table1 UT
ON U.id1 = UT.id1
AND U.id2 = UT.id2