[英]MYSQL: can BULK select can still return array of results from inputs of same value?
mysql> select Name from Type where id in (8,8);
+------------------+
| Name |
+------------------+
| PUBLISHER |
+------------------+
它仅返回1个值。
有没有办法可以返回2 PUBLISHER? 由于我有2个输入,因此我需要js代码中的forEach。 谢谢 !
与先前的答案类似,但也许更能反映您的期望行为,并且不需要对列表中的每个值重复整个查询,另一种选择是这样的:
SELECT t.Name
FROM (
SELECT 8 AS id
UNION ALL SELECT 8
) AS p
INNER JOIN `Type` AS t ON p.id = t.id
;
一种方法是将其分解成针对每个id
值的各个Select查询,然后执行“ Union All
合并Union All
。 您可以轻松地为每个id
值输入循环编写查询:
Select Name From Type Where id = 8
Union All
Select Name From Type Where id = 8
该查询:
select Name from Type where id in (8,8)
在语法上等效于:
select Name from Type where id = 8
IN
运算符中的项目数不会告诉任何有关结果集中记录数的信息。 它只是告诉您的RDBMS返回与IN
运算符右侧列出的任何值匹配的所有记录。
您得到的结果确实表明表中有一条id = 8
。
一种获得您期望的输出的解决方案是使用UNION ALL
:
select Name from Type where id = 8
union all
select Name from Type where id = 8
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.