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 为每个Where子句选择语句_Sql_Sqlite_Select_Duplicates_Where - Fatal编程技术网

Sql 为每个Where子句选择语句

Sql 为每个Where子句选择语句,sql,sqlite,select,duplicates,where,Sql,Sqlite,Select,Duplicates,Where,我想从具有相同条件的WHERE子句的Select语句中获取单个结果集。显然,可能也有不同的情况。这个查询是程序的一部分,所以它必须准确地给出我所需要的。例如 SELECT * from MyTable WHERE x = 'DISPMSG' OR x = 'DISPMSG' OR x = 'DISPMSG' OR x = 'DISPMSG' OR x = 'DISPMSG' OR x = 'RSSET'; 这个查询带给我的显然是2个结果集。但是我想要的是,它应该给我相同的结果集合,

我想从具有相同条件的WHERE子句的Select语句中获取单个结果集。显然,可能也有不同的情况。这个查询是程序的一部分,所以它必须准确地给出我所需要的。例如

SELECT * from MyTable 
WHERE 
  x = 'DISPMSG' OR  x = 'DISPMSG' OR x = 'DISPMSG' OR x = 'DISPMSG' 
OR x = 'DISPMSG' OR x = 'RSSET';
这个查询带给我的显然是2个结果集。但是我想要的是,它应该给我相同的结果集合,大小为5和1,条件不同,因为where子句上有5+1条件。我知道查询需要循环或其他方式,但无法找到正确的方法

非常感谢您的帮助。

我建议您使用“union all”运算符,您的查询将变成:

SELECT * from MyTable WHERE x = 'DISPMSG'
union all
SELECT * from MyTable WHERE x = 'DISPMSG'
union all
SELECT * from MyTable WHERE x = 'DISPMSG'
union all
SELECT * from MyTable WHERE x = 'DISPMSG'
union all 
SELECT * from MyTable WHERE x = 'RSSET';

因此,这是一个很好的网站,以获得答案:只是要确保提供一个完整的。在你问问题之前,先考虑一下。是的,我是认真的!为了帮助我们,请生成示例数据和预期结果。使输出易于阅读!您还可以模拟数据和SQL,尝试使用或类似的站点。我认为您希望记录集中有6条记录,5条为dispmsg,1条为rsset。但是where子句过滤数据。因此,如果没有5+1记录,SQL将不会创建它。现在。。。。您可以交叉连接到一个包含5条记录的表,并以某种方式对dispmsg计数5,对rsset复制记录计数1;但是为什么呢?这种类型的操作最好在UI中处理,而不是在数据检索中处理。当网络重复时,您为什么希望更多的数据通过网络传输?当您可以获得较小的数据集并根据需要在UI中重复数据时,发送数据和检索记录?感谢您的回复。我知道这是一个愚蠢的问题,也许我解释得不对。我正在sqlite数据库上使用它。我在想,可能有一种方法可以获取每个where子句的记录。现在我知道这是不可能的,我必须使用联合。但它仍然比在UI上工作更快。再次感谢。如果有两条记录是DISPMSG,会发生什么。那么OP要10张DISPMG记录吗?谢谢。。你的解决方案奏效了。投了赞成票,但看不到投票结果。如果op想要10张唱片,那么总共会有10张。op想要,我们遵守@DhBh您能把答案标记为已接受吗?你看不到投票,因为“有人”投了否决票。