[英]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.