-2

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

computer_products
kitchen_products
..... so on

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

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

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

提前致谢

4

1 回答 1

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变量。

然后使用准备好的语句执行它。

于 2012-11-14T07:39:12.623 回答