我有多个产品表(彼此不相关)。所有产品表都有一些前缀,如
computer_products
kitchen_products
..... so on
我所有的前缀都在一个单独的表中。我必须从所有表中获取产品。
我知道我可以使用存储过程,但我是mysql查询和存储过程的新手。我正在努力学习,但这是紧急事情。
为它制作存储过程有什么帮助吗?
提前致谢
答案 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执行它。