我试图了解 MySQL 变量并执行这样的命令
SET @target=`name`;
SELECT @target FROM transaction_product LIMIT 10;
但它是错误并说Unknown column 'name' in 'field list'
为什么它是错误的,我确定我的字段列表上有列名
这是表格的屏幕截图
我试图了解 MySQL 变量并执行这样的命令
SET @target=`name`;
SELECT @target FROM transaction_product LIMIT 10;
但它是错误并说Unknown column 'name' in 'field list'
为什么它是错误的,我确定我的字段列表上有列名
这是表格的屏幕截图
您需要使用不同的引号 '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;
SELECT @target:=`name` FROM transaction_product LIMIT 10;