问题标签 [where-in]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - “加入”还是“不在()中”?
可能重复:
加入与子查询
我需要处理大量数据,但有时需要根据条件排除记录。
由于要检查的数据量以及将返回的数据量一次是数万个,并且会经常运行,我想知道是否有人可以阐明哪种方法最好在速度和负载方面,尽可能保持平稳运行
或者
mysql - SQL select ... in (select...) 耗时较长
我有一张用户购买的商品表,在该表中有一个类别标识符。所以,我想向用户展示同一张桌子上的其他商品,他们已经购买过相同的类别。
我正在尝试的查询运行时间超过 22 秒,而主要项目表甚至没有 3000 行......为什么效率这么低?我应该索引哪些列,如果是的话?
这是查询:
hibernate - Hibernate/HQL实现SQL WHERE...IN(SELECT...)查询
使用 Hibernate 实现以下涉及子查询的 SQL 查询的等效方法是什么:
最好的方法可能是将其直接传递给数据库,以我的数据库风格的 SQL (PL/SQL) 本地完成,但我实际上无法弄清楚它是如何在 HibernateCriterion
对象中完成的,所以我特别想知道。
请注意:该THING
表绝对庞大并且有很多列,所以我不想THING
从数据库中拉下所有实体来实现这个逻辑,因为它不会是高性能的。限制THING_CATEGORY
结果的逻辑必须在可以优化的数据库内部完成。事实上,当我使用原始 PL/SQL 进行查询时,几乎需要一秒钟才能得到结果。
给出实体的概念(请注意,THING_CATEGORY
没有对 的引用THING
):
mysql - MYSQL 查询 WHERE IN 与 OR
我开发了一个使用 OR 查询的系统:
与查询 IN 比较:
MYSQL 数据库中最好的查询是什么?
sql-server - “WHERE x IN (SELECT value FROM table)”对于大表会不会低效?
以下两个 SQL 查询返回相同的结果:
同样,这两个查询返回相同的结果:
就个人而言,我发现使用“IN”或“NOT IN”的选项更容易阅读(特别是因为我的实际查询中已经有一堆连接)。但是,如果 Table2 中的值越来越多(目前只返回三个结果),这个查询会不会变得低效?或者查询优化器会在幕后把它找出来并把它变成一个连接吗?我正在使用 SQL Server 2012。
java - 使用 Hibernate for Java 在 HQL 中获取异常行为绑定参数列表时
更新
我发现了问题。有点尴尬。客户端代码正在发送一个Set
1 元素,它是报告 ID 的串联字符串。啊啊!
我在我的 Java 项目中使用休眠 v3.6.4。尝试在我的 HQL 查询中为命名参数使用参数列表时遇到问题。
基本上我想获取与子句id
中提到的“”之一匹配的所有记录。IN
我尝试同时使用 HQL 和 Criteria 我得到了相同的结果。
我的 HQL 查询,
输出 = 空列表。虽然我通过在终端中触发手动 sql 查询来检查确实有这样的记录。
我打开了日志记录,这就是我所看到的,
这是非常不正常的,因为如果您注意到最后的绑定语句,它会考虑 Set 的 toString!即“1,2”而不是“1”,然后是“2”!
我一直在搞乱它,所以一时兴起,我决定直接在setParameterList
方法调用本身内创建集合的实例。像这样,
它奏效了!BTW Sets.newHashSet 是一个构造提供的谷歌的番石榴库。我使用相同的库来生成原始的 reportIds 集。所以那里没有矛盾。
此查询转换为以下 TRACE,
请注意 VARCHAR 的单独绑定。
我完全被这种奇怪的行为弄糊涂了。也许你们中的一些人可以指出我做错了什么。
仅供参考,我使用的标准构造(&导致相同的输出)是这样的,
PS我还使用了具有相同结果的命名sql查询
c# - 时间:2019-05-10 标签:c#where in with list and linq
我有两个列表,一个有object A
另一个列表objects B
,如下所示:
我有两个列表,一个带有Object A
,另一个带有Object B
。我想创建一个新的list C
只有.objects B
IDObjectA
ID
list A
在 SQL 中,它会是这样的一行:
在我的例子中, 的值列表IN clause
是 的列表ObjectA
,它具有属性idObjectA
。
mysql - MySQL 多个 IN 子句不起作用
我有一个 MySQL 表列量规,其中包含字符串值 '61,80,112,256'。所以我尝试执行该查询:
并且没有结果返回。有什么建议么?
mysql - MySQL:循环遍历 IN 子句中的多个字段
我有一个宇宙,其中有一列有 3 种类型的 id。我知道我可以在 WHERE 语句中使用 3 个单独的 OR 子句
但是有没有更有效的方法来做到这一点?
c# - 使用 WHERE IN 子句的 SQL 数据源
将 Studio 2010 C# 与 DB2 UDB 9.7.5 一起使用
我有一个从带有 WHERE IN 子句的 DataSource 填充的网格视图,如下所示:
硬编码 WHERE 子句可以正常工作(即 WHERE GROUP_NAME IN ('GROUP1','GROUP2','GROUP3')
但是我正在尝试在后面的代码中使用我的数据源的 onSelecting 事件来构建组列表,如下所示:
当我显示 grpList 字符串时,我确实有 ('GROUP1','GROUP2','GROUP3')。
但我没有显示任何数据。我已经搜索并尝试了各种技术来更改 SELECT 语句、使用 e.Command.Parameters.Add 修改参数列表、使用 ControlParemers 等。
我还阅读了一篇关于 WHERE IN 子句如何无法处理逗号分隔列表参数的文章,但 IN 关键字可以查询表。
我的 gpList 不是从另一个 SELECT 语句构建的——但我仍然尝试了一些这样的例子,但没有运气。作为一个新手 - 我似乎在围绕解决方案跳舞。
如果我错过了有助于回答这个问题的帖子,请告诉我。任何帮助,将不胜感激。