簡體   English   中英

MYSQL:批量選擇是否仍可以從相同值的輸入返回結果數組?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM