Questions tagged «where»

2
选择集合中两列的位置
这可能是一个愚蠢的问题,我怀疑我无法做到这一点,但是SQL中是否有一种结构可以让我执行以下操作: SELECT whatever WHERE col1,col2 IN ((val1, val2), (val1, val2), ...) 我想选择两列成对出现的数据。 如果可能的话,我想避免使用子查询。
35 mysql  where 

3
根据特定公式找到最小的缺失元素
我需要能够从具有数千万行的表中找到丢失的元素,并且具有一BINARY(64)列的主键(这是要从中计算出的输入值)。这些值主要是按顺序插入的,但有时我想重复使用先前删除的值。用IsDeleted列修改已删除的记录是不可行的,因为有时会插入一行,该行的行数比当前现有行的数百万。这意味着样本数据将类似于: KeyCol : BINARY(64) 0x..000000000001 0x..000000000002 0x..FFFFFFFFFFFF 因此,在0x000000000002和之间插入所有缺少的值0xFFFFFFFFFFFF是不可行的,所用的时间和空间将是不希望的。本质上,当我运行算法时,我希望它返回0x000000000003,这是第一个开始。 我想出了一个用C#进行二进制搜索的算法,该算法将查询数据库中position处的每个值i,并测试是否期望该值。对于上下文,我的算法很糟糕:https : //codereview.stackexchange.com/questions/174498/binary-search-for-a-missing-or-default-value-by-a-given-formula 例如,此算法将在具有100,000,000个项目的表上运行26-27个SQL查询。(这似乎不是很多,但它的将要发生的非常频繁。)目前,这个表中有大约5000万行,并且表现越来越明显。 我的第一个替代想法是将其转换为存储过程,但这有其自身的障碍。(我必须编写一个BINARY(64) + BINARY(64)算法,以及许多其他东西。)这将很痛苦,但并非不可行。我也考虑过基于实施翻译算法ROW_NUMBER,但是对此我感到很不好。(BIGINT对于这些值,A 几乎不够大。) 我想提出其他建议,因为我真的需要尽快。值得的是,C#查询选择的唯一列是KeyCol,其他与该部分无关。 同样,就其价值而言,当前获取适当记录的查询大致如下: SELECT [KeyCol] FROM [Table] ORDER BY [KeyCol] ASC OFFSET <VALUE> ROWS FETCH FIRST 1 ROWS ONLY <VALUE>算法提供的索引在哪里。我也没有这个BIGINT问题OFFSET,但是我会的。(现在只有5000万行意味着它永远不会要求该值以上的索引,但是在某个时候它将超过该BIGINT范围。) 一些其他数据: 从删除来看,gap:sequential比率约为1:20; 表中的最后35,000行的值> BIGINT的最大值;

3
更新WHERE子句以检查值是否不在单独的表中
我有一个使用WHERE子句的查询,并且碰巧在此表的许多查询中使用了完全相同的WHERE子句(等)。 查询是: SELECT DATENAME(DW, [AtDateTime]) AS [Day of Week] ,COUNT(*) AS [Number of Searches] ,CAST(CAST(COUNT(*) AS DECIMAL(10, 2)) / COUNT(DISTINCT CONVERT(DATE, [AtDateTime])) AS DECIMAL(10, 2)) AS [Average Searches per Day] ,SUM(CASE WHEN [NumFound] = 0 THEN 1 ELSE 0 END) AS [Number of Searches with no Results] ,CAST(CAST(SUM(CASE WHEN [NumFound] …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.