Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 根据给定的数据对选择数据_Sql_Sqlite - Fatal编程技术网

Sql 根据给定的数据对选择数据

Sql 根据给定的数据对选择数据,sql,sqlite,Sql,Sqlite,我几乎没有使用SQL的经验,现在我正在使用JDBC连接到我的数据库。 我正在使用sqlite,我的模式如下所示: id1, id2, value1, value2 我想根据给定id1和id2对的列表提取行。 我知道Postgresql可以做到 SELECT * FROM table WHERE ("id1", "id2") IN (('1', '2'), ('3', '4')); 但是sqlite呢?您可以使用连接来代替中的,使用两个字段: SELECT U.* FROM Ta

我几乎没有使用SQL的经验,现在我正在使用JDBC连接到我的数据库。 我正在使用sqlite,我的模式如下所示:

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

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

但是sqlite呢?

您可以使用
连接来代替
中的
,使用两个字段:

SELECT U.* 
FROM Table U
  INNER JOIN Table1 UT
    ON U.id1 = UT.id1
    AND U.id2 = UT.id2

您可以使用
-条件:

SELECT  *
FROM    table
WHERE   (id1='1' and id2='2') OR
        (id1='3' and id2='4')

你可以这样做:

SELECT  *
FROM    table
WHERE   (id1 = '1' AND id2= '2') OR (id1='3' AND id2='4');

如果你有一个很长的列表,你可以这样做

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.15.0以来,SQLite支持:


如果我的名单很长怎么办?@YIWENGONG你为什么不去加入,而不是像我(这里)提到的那样加入[@VigneshKumar谢谢!如果我的id1和id2列表很长怎么办?那么我会实际引入一个包含所需配对的表,然后使用联接。谢谢你的帮助!谢谢你的帮助!错误的数据库。在这个问题中,没有第二个表可以联接。删除引用不会使引用的文本变为fa实际上是正确的。另请参见。
SELECT *
FROM   MyTable
WHERE  (id1, id2) IN (VALUES ('1', '2'), ('3', '4'));