1

我试图了解 MySQL 变量并执行这样的命令

SET @target=`name`;
SELECT @target FROM transaction_product LIMIT 10;

但它是错误并说Unknown column 'name' in 'field list'
为什么它是错误的,我确定我的字段列表上有列名

这是表格的屏幕截图

MySQL 表

4

2 回答 2

3

您需要使用不同的引号 'name' 来将字符串分配给变量,并使用`name` 来表示列名:

SET @target='name';

要获取列值,您可以使用INTO子句:

SELECT `name`
INTO @target
FROM transaction_product
LIMIT 1;

要在单个变量中获取多行,您可以使用GROUP_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;
于 2012-08-01T07:06:26.963 回答
0
SELECT @target:=`name` FROM transaction_product LIMIT 10;
于 2012-08-01T07:10:00.807 回答