[英]Select rows where (field1, field2, field3) in set (val11,val21,val31),…,(val11,val21,val31)
I'm using mysql. 我正在使用mysql。 I need to select rows from table (with fields
id,field1,field2,field3
) where (field1,field2,field3)
in set of vectors (v11,v21,v31),(v12,v22,v32),...,(v1N,v2N,v3N)
. 我需要从表中选择行(具有字段
id,field1,field2,field3
)其中向量(v11,v21,v31),(v12,v22,v32),...,(v1N,v2N,v3N)
中的(field1,field2,field3)
(v11,v21,v31),(v12,v22,v32),...,(v1N,v2N,v3N)
。 Is it possible to do it with one query? 是否可以通过一个查询来完成? If yes, what fields do I need to index to speed up the query?
如果是,我需要索引哪些字段以加快查询速度? And is this query faster/slower then
N
serial simple select queries? 并且此查询比
N
串行简单选择查询快/慢吗?
Thank you in advance! 先感谢您!
You can do a multi-column IN
comparison like so: 您可以像这样进行多列
IN
比较:
SELECT id,
field1,
field2,
field3
FROM tbl
WHERE (field1,field2,field3) IN (
(v11,v21,v31),
(v12,v22,v32),
(v1n,v2n,v3n)
)
And it's essentially saying: 实质上是在说:
Where 哪里
(field1 = v11 AND field2 = v21 AND field3 = v31) OR
(field1 = v12 AND field2 = v22 AND field3 = v32) OR
... OR
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.