首页 > 解决方案 > MySQL 在表名中使用通配符

问题描述

所以我有一个软件可以在这些表上存储数据。我知道这些表是如何开始的,但是它们总会有一个后缀,这是一个我不知道的数字,这些表名的示例是"itemid5_4423"

我知道有一个名为 itemid5 的表,但我无法知道后缀号是否有类似于此逻辑的通配符select * from itemid5_*;

标签: mysqlmariadb

解决方案


SELECT
REPLACE
    (
        GROUP_CONCAT(
            CONCAT("SELECT * FROM ", `TABLE_NAME`)
        ),
        ",",
        " UNION ALL "
    )
INTO @sq
FROM
    information_schema.tables
WHERE
    `TABLE_SCHEMA` = "test";
USE
    test;
PREPARE
    stmt1
FROM
    @sq;
EXECUTE
    stmt1;

推荐阅读