Мне нужно использовать @var из запроса
SET @table := (SELECT
SCHEMA_NAME
FROM
information_schema.SCHEMATA
WHERE
SCHEMA_NAME LIKE 'test%'
LIMIT 1);
SELECT
*
FROM
@table;
Привет и добро пожаловать в Stack Overflow. В нынешнем виде на ваш вопрос сложно ответить, но мне думать нужен динамический SQL. stackoverflow.com/questions/190776/…
Вам нужно объявить таблицу, прежде чем вы сможете установить таблицу.
DECLARE @table TABLE ( SCHEMA_NAME NVARCHAR(MAX) )
INSERT INTO @table
SELECT SCHEMA_NAME
FROM information_schema.SCHEMATA
WHERE SCHEMA_NAME LIKE 'test%'
Если вы пытались ограничить таблицу 1 строкой с помощью «Limit 1», просто используйте «TOP 1» следующим образом:
INSERT INTO @table
SELECT TOP 1 SCHEMA_NAME
FROM information_schema.SCHEMATA
WHERE SCHEMA_NAME LIKE 'test%'
После того, как это установлено, вы можете запросить временную таблицу:
SELECT * FROM @table
Для этого вам нужно использовать динамический SQL. В MySQL это prepare
/execute
:
SELECT @table := SCHEMA_NAME
FROM information_schema.SCHEMATA
WHERE SCHEMA_NAME LIKE 'test%'
LIMIT 1;
SET @sql = CONCAT('SELECT * FROM ', @table);
prepare s from @sql;
execute s;
Я должен отметить, что рассматривать схему как таблицу действительно странно, но это то, о чем вы спрашиваете. Если вам нужны таблицы, вы должны использовать information_schema.tables
.