gpt4 book ai didi

mysql - 如何在select语句中选择列名

转载 作者:行者123 更新时间:2023-11-29 04:00:51 25 4
gpt4 key购买 nike

我想从表 A 复制/更新数据到表 B。表 B 有一些额外的列。我尝试了以下选项。

1) `REPLACE INTO `B` (SHOW FIELDS FROM 'A') SELECT * FROM `A

2) `REPLACE INTO `B`
(SELECT `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA`='test1' AND `TABLE_NAME`='A') SELECT * FROM `A

但是它会抛出错误。你们能帮我如何使用选择查询来选择名称吗?

更新:

3) 正如 Jerko 所建议的那样,

我有两个表 A(warehouse_id,long,lat) B(warehouse_id,long)

应用了以下声明。

SET @query = CONCAT('REPLACE INTO `A` (SELECT  ', 
(SELECT GROUP_CONCAT(CONCAT('`',column_name, '`'))
FROM information_schema.columns
WHERE `TABLE_SCHEMA`='test2' AND `table_name` = 'A'),
' FROM `B`)');


PREPARE stmt FROM @query;
EXECUTE stmt;

这给了我错误

"#1054 - Unknown column 'lat' in 'field list' "

最佳答案

您不能像您尝试的那样在 mysql 中动态地执行此操作。 MySQL 希望直接提供您的列名列表,而不是从子查询中提供。

如果您想动态地执行此操作,则必须退回到上游,使用与 MySQL 交互所使用的任何语言,例如 PHP 或 Java。

关于mysql - 如何在select语句中选择列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23291242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com