问题标签 [where]

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.

0 投票
6 回答
1364 浏览

sql - 比使用“A UNION (B in A)”更高效的 SQL?

编辑1(澄清):感谢您到目前为止的回答!反应令人欣慰。
我想稍微澄清一下这个问题,因为根据答案,我认为我没有正确描述问题的一个方面(我确信这是我的错,因为我很难为自己定义它)。
这就是问题所在:结果集应该只包含 tstamp BETWEEN '2010-01-03' AND '2010-01-09' 的记录,以及第一组中每个 order_num 的 tstamp 为 NULL 的记录(会有对于每个 order_num,始终为 1,且 tstamp 为空)。
到目前为止给出的答案似乎包括某个 order_num 的所有记录(如果有的话)带有“2010-01-03”和“2010-01-09”之间的时间戳。例如,如果有另一条记录 order_num = 2 且 tstamp = 2010-01-12 00:00:00,则不应将其包含在结果中。

原始问题:
考虑一个包含 id(唯一)、order_num、tstamp(时间戳)和 item_id(订单中包含的单个项目)的订单表。tstamp 为空,除非订单已被修改,在这种情况下,会有另一条具有相同 order_num 的记录,然后 tstamp 包含更改发生时间的时间戳。

例子...

检索在特定日期范围内被修改一次或多次的所有订单(基于 order_num)最有效的 SQL 语句是什么?换句话说,对于每个订单,我们需要具有相同 order_num 的所有记录(包括具有 NULL tstamp 的记录),对于每个 order_num,其中至少一个 order_num 的 tstamp NOT NULL AND tstamp BETWEEN '2010-01-03'和“2010-01-09”。这是我遇到困难的“其中至少一个 order_num 的 tstamp NOT NULL”。

结果集应如下所示:

我想出的SQL是这样的,本质上是“A UNION (B in A)”,但是执行起来很慢,希望有更高效的解决方案:

0 投票
4 回答
1239 浏览

sql - SQL 查询 JOIN 性能

我想知道什么是更好的性能:将条件放在 JOIN 中?(x JOIN y on x.hi = y.hi AND ....) 或者把它放在 WHERE 下,只留下交叉条件的 JOIN。

谢谢大家

0 投票
1 回答
227 浏览

mysql - 如何在 DBI 中重复使用 WHERE 子句逻辑?

免责声明:我第一次使用 DBI。

我有一个 MySQL 表,其中包含许多索引字段(f1、f2、f3 等),这些字段用于通过长时间运行的进程生成 WHERE 子句,这些进程迭代执行各种清理和测试操作的数据库块。

此代码的当前版本的工作方式如下:

无论如何,我将在数据库中转储更多的行,并且很清楚上面的代码不会扩大规模。我可以根据其他语言想出几种方法来修复它。在 Perl 中处理它的最佳方法是什么?

需要注意的关键点是 in 的逻辑get_list_of_ids()太长,无法在每个函数中复制;并且对所选行的操作非常多样化。

提前致谢。

0 投票
5 回答
27777 浏览

c# - C# FindAll VS Where 速度

任何人都知道列表中 Where 和 FindAll 之间的任何速度差异。我知道 Where 是 IEnumerable 的一部分,而 FindAll 是 List 的一部分,我只是好奇什么更快。

0 投票
1 回答
753 浏览

c# - NHibernate 映射。设置加入子类声明元素的集合和 where 属性

我正在开发一个项目,其中可以将持久数据标记为删除,但保留在数据库中,将列 (is_deleted) 设置为 TRUE。

使用休眠类映射属性“where”并将 where="is_deleted = 0" 添加到标签中可以正常工作。但是当我声明一组子类元素时它失败了。

这个简化的例子使用了包含类“Wheel”的成员集合的“Car”类,它继承自“CarPart”类:

如果我在代码中尝试访问集合Car.Wheels我会收到 SQL 错误,因为“where”子句适用于子类“Wheel”的表,而不是其超类“CarPart”,其中 IsDeleted 属性实际上是定义。

生成的 SQL 如下所示:

而不是正确的

  • 这是一个错误吗?还是我错过了一个细节?超类 CarPart 已经有 where="is_deleted = 0",所以逻辑上这应该适用于所有定义的子类?
  • 是否有其他方法可以向 NHibernate 中的所有持久数据添加 is_deleted 标志?

非常感激你的帮助

0 投票
1 回答
750 浏览

mysql - 从具有不同列的两个表中进行选择,其中一个需要计数

我有两个表,TableA 和 TableB。我需要根据 where 条件从 TableA 中选择一个计数值。我需要从 TableB 中选择两个值。我想要一个结果集中的所有值。结果集中永远不会超过一行。

这是我现在拥有的:

SELECT count(id) FROM TableA WHERE ($some_where_statement) SELECT owner, owner_ID from TableB

我知道这应该很简单,但这会引发错误。有什么建议么?

0 投票
2 回答
237 浏览

mysql - 其中查询计数结果 > 0

我需要做这样的查询:

但需要它工作吗?

0 投票
3 回答
2342 浏览

where - mysql where子句中的最大值

有谁知道我可以在 where in 子句中给出多少个值?我在 where in 子句中得到 25000 个值,而 mysql 无法执行。有什么想法吗?等待你的想法

0 投票
1 回答
2716 浏览

mdx - MDX - 在“Where”部分使用“iif”函数

嗨,我想知道如何使“iif”工作。

基本上,当发起人是“John Smith”时,我需要过滤工程“产品代码”。当前成员不工作或 iif 不工作,

有任何想法吗?

提前致谢。

杜伊

0 投票
2 回答
4510 浏览

mysql - MySQL 的 'where col in (list)' 的替代方案

嗨,我有下表 T:

我想做一个选择,当 group by(col) 具有 count(col)>1 时返回 id,col

一种方法是

实习生选择(从右边开始)返回 'a' 并且主要的一个(左)将返回 1,a 和 3,a

问题是 where in 语句似乎非常慢。在我的真实案例中,内部选择的结果有很多'col',大约 70000 并且需要几个小时。

现在进行内部选择和主选择获取所有 id 和 upcs 并在本地进行交集要快得多。MySQL 应该能够有效地处理这种查询。

我可以用 where in 代替 join 或更快的东西吗?

谢谢