根据给定的对

时间:2017-06-08 06:08:27

标签: sql sqlite

我几乎没有使用SQL的经验,现在我正在使用JDBC连接到我的数据库。 我使用的是sqlite,我的架构如下:

id1, id2, value1, value2

我想根据给定的id1和id2对列表提取行。 我知道Postgresql可以做到

SELECT  *
FROM    table
WHERE   ("id1", "id2") IN (('1', '2'), ('3', '4'));

但是sqlite怎么样?

5 个答案:

答案 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