MySQL变量不工作
我试图学习MySQL变量,并像这样执行命令MySQL变量不工作,mysql,Mysql,我试图学习MySQL变量,并像这样执行命令 SET @target=`name`; SELECT @target FROM transaction_product LIMIT 10; 但这是一个错误,在“字段列表”中说了未知列“name” 为什么它是错误的,我确信在我的字段列表上有列名 这是表格的截图 您需要使用不同的引号“name”来为变量指定字符串,而`name`用于列名: SET @target='name'; 要获取列值,您可以在子句中使用: SELECT `name` INTO @
SET @target=`name`;
SELECT @target FROM transaction_product LIMIT 10;
但这是一个错误,在“字段列表”中说了未知列“name”
为什么它是错误的,我确信在我的字段列表上有列名 这是表格的截图
您需要使用不同的引号“name”来为变量指定字符串,而
`name
`用于列名:
SET @target='name';
要获取列值,您可以在子句中使用:
SELECT `name`
INTO @target
FROM transaction_product
LIMIT 1;
要在单个变量中获取多行,您可以使用GROUP\u CONCAT
:
SELECT GROUP_CONCAT(`name`)
INTO @target
FROM transaction_product
LIMIT 10;
要动态执行查询,请执行以下操作:
SET @target='`name`';
SET @query1 = CONCAT('
SELECT ',@target,'
FROM transaction_product
LIMIT 10'
);
PREPARE stmt FROM @query1; EXECUTE stmt; DEALLOCATE PREPARE stmt;
这是否意味着变量不能用于选择字段名?我看到您硬编码了name
字段……您不能将列名分配给变量并在select子句中使用该变量。为此,您可以使用PREPARE stmt。
SELECT @target:=`name` FROM transaction_product LIMIT 10;