问题标签 [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.

0 投票
2 回答
735 浏览

mysql - MySQL where-in 子查询只返回一行

我有两张桌子课程和学生

说,学生有领域:idfirst_name 有数据

比如说,Course 有两个字段:id 和 students

有数据:

ID 。. . . . . . . 1. . . . . . 2

学生们 。. . 1,2,5。. . .3,4,6,7

假设我想查找课程 1 中学生的姓名

SELECT students FROM courses c WHERE c.id = 1;

按预期产生 1,2,5

SELECT @students := students FROM courses c WHERE c.id =1;

按预期产生 1,2,5

SELECT s.first_name FROM students s WHERE s.id IN (1,2,5);

如预期的那样产生安德鲁,布赖恩埃里克

SET @students := students FROM courses c WHERE c.id =1; 选择@学生;`

产生 1、2、5

我希望

SET @students := students FROM courses c WHERE c.id =1; SELECT s.first_name FROM students s WHERE s.id IN (@students);

让安德鲁,布赖恩·埃里克

但它只返回名字:Andrew

我完全知道我可以/应该有一个单独的 course_student 查找表,但我很想知道为什么我没有得到我期望的结果

我哪里错了?

0 投票
1 回答
2715 浏览

mysql - WHERE-IN 或 FIND_IN_SET

一个未规范化的数据库有一个名为 batches 的表

表批次具有字段 student_ids ,其中包含多个 id。例如1311, 1319, 1400

来自:从批次中选择 student_ids WHERE 1311 IN(student_ids)

我们得到 student_ids:1311, 1319, 1400

并且:从批次中选择 student_ids WHERE 1319 IN(1311, 1319, 1400)

工作正常:1311, 1319, 1400

从批次中选择 student_ids WHERE 1319 IN(student_ids)

或者

从批次 b 中选择 @student_ids := student_ids;从批次中选择 student_ids WHERE FIND_IN_SET(1319, @student_ids)

返回Null

我错过了什么?我想我必须将第一个结果转换为数组 - 但是如何?

我已经尝试过 Dash 的建议(非常感谢 Dash),但我仍然遇到问题

我也试过 SELECT id FROM batches WHERE INSTR(','+1319+',', ','+CAST(student_ids AS CHAR) + ',')

正如 Matt Ellen 在另一篇文章中所建议的那样 - 仅在第一项匹配时才有效

0 投票
3 回答
423 浏览

mysql - MySQL:使用 RANGE 查询的 ORDER BY,性能不佳

我正在处理一个查询,该查询应从包含超过400,000 条记录的MyIsam表中选择定义的用户列表发送的最后 20 个帖子。唯一的问题是查询运行大约0.6秒,有时超过 2 秒。

如果我删除ORDER BY查询要快得多,并且它在“post_author”列上使用正确的索引,而是执行全表扫描......进行这样的查询的最佳方法是什么?


使用 author_index 测试 #1

  • 主要(post_id)
  • author_index (post_author)

时间:0.7s 与许多作者解释

时间:0.004s 与少数作者解释


使用复合索引测试 #2

  • 主要(post_id)
  • view_posts_index (post_id, post_author)

时间:0.05s 与许多作者解释

时间:1.5s 与少数作者解释


使用复合索引和 author_index 测试 #3

  • 主要(post_id)
  • view_posts_index (post_id, post_author)
  • author_index (post_author)

时间:0.7s 与许多作者解释

时间:0.0037s 与少数作者解释


谢谢你的帮助。

0 投票
3 回答
380 浏览

mysql - mysql - 多个字符串的所有实例的计数

例如,假设有一张扎染 T 恤表……有些衬衫有多种颜色,以字符串形式列出,以逗号分隔。比如blue,yellow,red,purplegreen,white,black,red

我想做一个查询来计算每种颜色出现的次数。我事先知道列中将存在哪些“颜色”。

我现在正在做的是对每种“颜色”的单独查询:

ETC.....

有没有比 15 个不同的查询更有效的方法呢?

示例:如果我的表要具有“”列“颜色”的值blue, red, yellow,而另一行将是颜色 =“ red, green, yellow”等...

我正在寻找将返回的查询:

0 投票
4 回答
418 浏览

sql - SQL 性能是否会随着“IN”子句中元素数量的增加而降低?

我有一个这样的查询,

数据库中可能有数百万客户。这个查询会有效率问题吗?当 IN 语句中的 Id 数量更多时?如果是这样,为什么和任何解决方法?

我使用 SQLServer。下面是我的表结构

Id 是主键-非聚集索引。

0 投票
2 回答
1577 浏览

ruby-on-rails - Rails where In 不知道在哪里

undefined method where使用这些参数运行以下代码时,我不断收到错误消息。

谁能看到我做错了什么?

谢谢

0 投票
2 回答
7601 浏览

sql - 在 CouchDB 中执行 WHERE - IN 查询

我想通过一次调用 CouchDB 来查询特定文档的列表。

使用 SQL 我会做类似的事情

在 CouchDB 中通过任_id一字段或其他字段执行此操作的秘诀是什么?

0 投票
2 回答
19294 浏览

postgresql - PostgreSQL:在哪里而不是在哪里

我有两个表,A并且由字段引用,因此任何值都存在于.BABA.id_b B.idid_bB.id

我有三个查询: 第一个:

它给了我0

第二个,区别仅在于NOT

这个查询给了我:1899

第三个:

这个查询给了我3599

相同的结果:

保证我B.id分成两组,并且两组中的元素计数必须有很多总元素计数,但我有:1899 + 0 != 3599

那怎么可能?

0 投票
1 回答
2734 浏览

sqlite - 嵌套“WHERE IN”(或 AND、OR 语句)SQLite

我想要一个 SELECT 查询,它可以获取 user1 和 user2 的 8 个特定组合(并且 user2 和 user1 的组合也值得拥有,而不是多余的)。“IN”声明似乎是值得的。

直接相关的问题。1.“WHERE IN”语句可以嵌套吗?

  1. 如果没有,我如何最有效/最容易地构建一个查询以便我可以指定(对于 4 对,其中 user1 和 user2 切换位置 - 8 个组合): (where user1 = billy AND user2 = sue) OR (where user1 = sue AND user2 =billy) OR (user1 = jack AND user2 = jill) OR (user1 = jill AND user2 = jack)...等?

[此时运行查询和 grep 相关信息似乎更容易。]

目前的想法:

我用过这个,但显示了一些不相关的数据。

0 投票
4 回答
4899 浏览

sql - 在 sql server 查询更新编号列表一个字段到另一个字段的位置

我正在使用 SQL Server,在下面的查询中,我有一个问题。当我在列表中执行位置时,我不确定左侧的字段是否会与右侧的字段(来自同一个表)一起更新。

等等...

我认为它将采用列表中的第一个数字并解决字段值设置,然后移至列表中的下一个。

我的预期正确吗?

提前致谢。