MySQL table 名称中的临时变量

MySQL temporary variable in table name

我有一系列具有相同前缀的表,我需要 select 最新版本的数据——其后缀具有最高数字。这是我拥有的:

SELECT
    @latest_version_number :=
    MAX(
        CAST(SUBSTRING_INDEX(table_name,'_',-1) AS UNSIGNED)
    )
FROM information_schema.tables
WHERE lower(table_name) like '{table_prefix}%';

SELECT
    *
FROM CONCAT('`{table_prefix}', CAST(@latest_version_number AS CHAR), '`')

当 运行 作为控制台中的 2 个单独查询时,它的行为与我预期的一样。但是我在尝试 运行 将其作为单个查询时遇到“语法错误”。将其重构为单个查询的最简洁方法是什么?谢谢

我知道您可以在 MySQL 中使用 table 名称中的变量的唯一方法是使用 prepare + execute 语句。

这是我在网上找到的一个示例,可以为您提供准确的说明。

https://www.tutorialspoint.com/set-user-defined-variable-with-table-name-in-mysql-prepare-statement