2013-09-02 5 views
0

Я пытаюсь установить существование, когда есть данные, найденные в моей таблице (пользователе). В запросе мне нужно использовать переменную. Однако в случае IF он не работает. Любой идеал? или любой альтернативный способ сделать это?MySQL, если существует Execution

DECLARE 
@myTableName varchar(1000), 
@myQuery varchar(1000) 

SET @myTableName = userTable //the userTable i will retrieve from a parameter 
SET @myQuery = 'SELECT TOP 1 1 FROM ' + @myTableName + '' 


IF EXISTS (EXEC(@myQuery)) 
    BEGIN 
     print('Success') 
    END 
ELSE 
    BEGIN 
     print('Failed') 
    END 
+0

Параметр 'SQL-server' тег относится конкретный движок базы данных, который не совместим с MySQL. Не используйте эти теги вместе. –

+0

Кроме того, синтаксис «TOP 1» является специфичным для Sql-сервера. Вместо этого MySql будет использовать 'LIMIT 1' в конце инструкции. Так что это? Вы используете Sql Server или MySql? –

ответ

1
SET @myQuery = 'SELECT * FROM ' + @myTableName + ' LIMIT 0,1 ' 

Если он не работает, вы можете попробовать этот подход:

DECLARE 
@myTableName varchar(1000), 
@i int 

SET @myTableName = userTable //the userTable i will retrieve from a parameter 
SET @i = 'SELECT count(*) AS cnt FROM ' + @myTableName + '' 

IF @i > 0 
    BEGIN 
     print('Success') 
    END 
ELSE 
    BEGIN 
     print('Failed') 
    END 
Смежные вопросы