用于从多个产品表中获取产品的mysql存储过程

时间:2012-11-14 06:43:32

标签: mysql stored-procedures

我有多个产品表(彼此不相关)。所有产品表都有一些前缀,如

computer_products
kitchen_products
..... so on

我所有的前缀都在一个单独的表中。我必须从所有表中获取产品。

我知道我可以使用存储过程,但我是mysql查询和存储过程的新手。我正在努力学习,但这是紧急事情。

为它制作存储过程有什么帮助吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

您需要这样的查询 -

SELECT col1, col2 FROM computer_products
UNION
SELECT col1, col2 FROM kitchen_products

您可以使用此查询生成它 -

SELECT
  GROUP_CONCAT(CONCAT('SELECT col1, col2 FROM ', table_name) SEPARATOR ' UNION ')
  INTO @sql
FROM
  information_schema.tables
WHERE
  table_schema = '<database name>' -- spcecify <database name>
  AND table_name LIKE '%_products';

此查询将构建SELECT查询并将其传递给@sql变量。

然后使用prepared statement执行它。