2016-06-07 7 views
1

Я использую concat() создать имя для имени столбца:Использование CONCAT(), чтобы построить имя столбца псевдоним

set @var = 10; 
select col as concat("str1", cast(@var as CHAR), "str2") from table1; 

Но я получаю следующую ошибку синтаксиса:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ('str1', cast(@var as char), 'str2')

Что я Я делаю неправильно?

+0

что ваша ошибка? – techspider

+0

Я получил следующую синтаксическую ошибку: «1064 - У вас есть ошибка в синтаксисе SQL, проверьте руководство, соответствующее версии сервера MariaDB, для правильного синтаксиса для использования рядом ('str1', cast (@var as char), 'str2') " – sam

+1

Вы хотите получить:' select col as str110str2 from table1; '? – wchiquito

ответ

0

Try:

SET @var := 10; 

SET @`sql` := CONCAT('select col as ', 
        'str1', cast(@var as CHAR), 'str2', 
        ' from table1'); 

PREPARE `stmt` FROM @`sql`; 
EXECUTE `stmt`; 
DEALLOCATE PREPARE `stmt`; 
+0

Немного больше объяснений было бы полезно. В чем проблема и как ваш код решает эту проблему? – showdev

+0

И это должно быть сделано в хранимой процедуре. –

+0

@RickJames: Нет необходимости делать это в хранимой процедуре, это может быть сделано из MySQL Command-Line. – wchiquito

Смежные вопросы