как получить данные из динамической таблицы в SQL

0

Как я могу получить данные из выбранной таблицы моей базы данных? Я собираюсь работать с базой данных в приложении С#, и у меня есть база данных, которая включает в себя таблицы:

  1. MyTable1;
  2. MyTable2;
  3. ...

И у меня есть переменная tbl, которая равна tbl = "MyTable2"; , Я хочу выполнить код следующим образом: select * from tbl


Я пытаюсь выполнить этот код:

SELECT   *
FROM     (
          SELECT TABLE_NAME
          FROM   information_schema.tables
          WHERE TABLE_NAME = 'MyTable1'
          );

Но код вернул ошибку, что каждая производная таблица должна иметь свой собственный псевдоним


Я хочу получить все данные из таблицы, имя которой равно моей переменной (tbl), и ее значение также можно изменить. Как мне это сделать?

  • 0
    @ADyson ADyson Это не сработает, потому что для построения запроса таким образом требуется динамический SQL.
Теги:

2 ответа

1

Вы можете сделать это, используя подготовленный оператор в MySQL:

SELECT TABLE_NAME
INTO @table
FROM information_schema.tables
WHERE TABLE_NAME = 'MyTable1';

SET @query = CONCAT('SELECT * FROM ', @table);
PREPARE stmt FROM @query;
EXECUTE stmt;
  • 0
    Вам не нужно запускать первый запрос с помощью команды PREPARE / EXECUTE, вы можете просто выполнить запрос в обычном режиме и сохранить его результат в переменной @table .
0
SELECT   *
FROM     (
      SELECT TABLE_NAME
      FROM   information_schema.tables
      WHERE TABLE_NAME = 'MyTable1'
      ) AS Blah
  • 1
    Это решает проблему псевдонима таблицы, но она не выполняет то, что хочет OP, а именно заменяет имя таблицы и запрос из этой таблицы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню