mysql临时变量

m528fe3b  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(384)

我有一系列具有相同前缀的表,我需要从最新版本中选择数据--其后缀具有最高的数字。以下是我所拥有的:

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), '`')

它的行为与我在控制台中作为两个单独的查询运行时所期望的一样。但我在尝试将其作为单个查询运行时遇到了“语法错误”。将其重构为单个查询的最干净的方法是什么?谢谢

dsf9zpds

dsf9zpds1#

我知道在mysql中可以在表名中使用变量的唯一方法是使用prepare+execute语句。
下面是我在网上找到的一个例子,它给出了确切的说明。
https://www.tutorialspoint.com/set-user-defined-variable-with-table-name-in-mysql-prepare-statement

相关问题