2011-01-25 2 views
2

Возможно ли в последовательности операторов SQL получить значение поля и использовать его для обозначения таблицы в другом выражении? Я не уверен, если это понятно, так вот psudo-пример того, что я пытаюсь сделать:Использование переменных mySQL

// dataType is equal to "ratings" 
@var = select dataType from theTable where anID = 5; 

// needs to run as "from ratings-table" 
select field1,field2 from @var-table where anID = 5; 

Я читал http://dev.mysql.com/doc/refman/5.0/en/user-variables.html, но или я не правильно понимаю, или его нет решение, которое я ищу.

+0

В вашем примере, ANID = 5 в обоих случаях для field1, field2 вы хотели бы получить. Это также верно в вашей базе данных? – Dave

ответ

5

Да, вы можете сделать это с помощью prepared statements:

SET @TableName := 'ratings'; 
SET @CreateQuery := CONCAT('SELECT `field1`, `field2` FROM `', @TableName, '-table` WHERE `anID` = 5'); 
PREPARE statementCreate FROM @CreateQuery; 
EXECUTE statementCreate; 
Смежные вопросы