编写动态UNION ALL MySQL语句

时间:2017-07-26 15:21:47

标签: mysql sql

我有以下宠物类型列表:

['mammal', 'fish', 'amphibian', 'reptile']

目前,我使用以下MySQL语句从我的宠物类型中生成一个表:

SELECT 'mammal' AS petType UNION ALL
SELECT 'fish' UNION ALL
SELECT 'amphibian' UNION ALL
SELECT 'reptile' UNION ALL;

结果是:

+-------------+
| petType     |
+-------------+
| mammal      |
| fish        |
| amphibian   |
| reptile     |
+-------------+

如何更改查询以容纳宠物类型的动态列表。例如,MySQL是否有某种for循环允许我说:

for pet in my_list_of_pet_types:
    SELECT pet + "UNION ALL"

2 个答案:

答案 0 :(得分:2)

当您希望合并来自另一个表的相同列时,可以使用UNION

SELECT delivery_name,delivery_date FROM home_deliveries UNION ALL SELECT delivery_name,delivery_date FROM commercial_deliveries

我不确定你所做的是否是解决问题的正确方法。您试图解决的问题的更多细节将是很好的。

答案 1 :(得分:1)

为什么不简单:

SELECT DISTINCT pet AS petType FROM my_list_of_pet_types
ORDER BY pet