问题标签 [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 where-in 子查询只返回一行
我有两张桌子课程和学生
说,学生有领域:id
,first_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 查找表,但我很想知道为什么我没有得到我期望的结果
我哪里错了?
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 在另一篇文章中所建议的那样 - 仅在第一项匹配时才有效
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
谢谢你的帮助。
mysql - mysql - 多个字符串的所有实例的计数
例如,假设有一张扎染 T 恤表……有些衬衫有多种颜色,以字符串形式列出,以逗号分隔。比如blue,yellow,red,purple
或green,white,black,red
。
我想做一个查询来计算每种颜色出现的次数。我会事先知道列中将存在哪些“颜色”。
我现在正在做的是对每种“颜色”的单独查询:
ETC.....
有没有比 15 个不同的查询更有效的方法呢?
示例:如果我的表要具有“”列“颜色”的值blue, red, yellow
,而另一行将是颜色 =“ red, green, yellow
”等...
我正在寻找将返回的查询:
sql - SQL 性能是否会随着“IN”子句中元素数量的增加而降低?
我有一个这样的查询,
数据库中可能有数百万客户。这个查询会有效率问题吗?当 IN 语句中的 Id 数量更多时?如果是这样,为什么和任何解决方法?
我使用 SQLServer。下面是我的表结构
Id 是主键-非聚集索引。
ruby-on-rails - Rails where In 不知道在哪里
undefined method where
使用这些参数运行以下代码时,我不断收到错误消息。
谁能看到我做错了什么?
谢谢
sql - 在 CouchDB 中执行 WHERE - IN 查询
我想通过一次调用 CouchDB 来查询特定文档的列表。
使用 SQL 我会做类似的事情
在 CouchDB 中通过任_id
一字段或其他字段执行此操作的秘诀是什么?
postgresql - PostgreSQL:在哪里而不是在哪里
我有两个表,A
并且由字段引用,因此任何值都存在于.B
A
B
A.id_b B.id
id_b
B.id
我有三个查询: 第一个:
它给了我0
;
第二个,区别仅在于NOT
:
这个查询给了我:1899
第三个:
这个查询给了我3599
相同的结果:
保证我B.id
分成两组,并且两组中的元素计数必须有很多总元素计数,但我有:1899 + 0 != 3599。
那怎么可能?
sqlite - 嵌套“WHERE IN”(或 AND、OR 语句)SQLite
我想要一个 SELECT 查询,它可以获取 user1 和 user2 的 8 个特定组合(并且 user2 和 user1 的组合也值得拥有,而不是多余的)。“IN”声明似乎是值得的。
直接相关的问题。1.“WHERE IN”语句可以嵌套吗?
- 如果没有,我如何最有效/最容易地构建一个查询以便我可以指定(对于 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 相关信息似乎更容易。]
目前的想法:
我用过这个,但显示了一些不相关的数据。
sql - 在 sql server 查询更新编号列表一个字段到另一个字段的位置
我正在使用 SQL Server,在下面的查询中,我有一个问题。当我在列表中执行位置时,我不确定左侧的字段是否会与右侧的字段(来自同一个表)一起更新。
等等...
我认为它将采用列表中的第一个数字并解决字段值设置,然后移至列表中的下一个。
我的预期正确吗?
提前致谢。