在MySQL中,我想用这个查询中的所有信息创建一个新表:

select * into consultaa2 from SELECT
 CONCAT(    'UPDATE customers SET
 customers_default_address_id= ',    
 (SELECT a.address_book_id FROM
 address_book a where
 c.customers_id=a.customers_id order by
 address_book_id desc limit 1),    '
 WHERE customers_id = ', customers_id,
 ';') AS sql_statement FROM customers c
 where c.customers_id > 3894;

查询太长,浏览器无法显示concat,我需要它来进行更新.

推荐答案

*注意this method does not create a table(根据作品标题).要做到这一点,请参见this answer*


将查询中的信息插入表的格式如下

INSERT INTO <TABLE-1> 
SELECT * FROM <TABLE-2>

在你的情况下,应该是

insert into consultaa2 
SELECT CONCAT( 'UPDATE customers SET customers_default_address_id= ',
(SELECT a.address_book_id FROM address_book a where c.customers_id=a.customers_id order by address_book_id desc limit 1), ' WHERE customers_id = ', customers_id, ';') AS sql_statement FROM customers c where c.customers_id > 3894;

只需确保要插入的表中的列与select查询返回的列匹配即可.

Mysql相关问答推荐

MySQL 8.0.28覆盖(和函数)索引未使用

如何在Sequelize中创建限制查询?

docker-compose:无法将应用程序服务连接到 mysql 数据库,收到错误:用户‘root’@‘localhost’访问被拒绝(使用密码:YES)

如何编写一个查询,计算表中每个日期的一个日期加上前 4 天的记录数?

如何在Pandas 中使用 to_sql

如何在 MySQL 中使用从 SELECT IF 返回的布尔值

Mysql 中相同列的相关 2 查询

SQL 根据多行值获取记录

MySQL 8.0.30 正则表达式词匹配特殊字符

JOOQ:如何将 POJO 列序列化为 JSON

是否可以在一个查询中将字符串附加到许多匹配的行

Select 在同一天售出不同活动门票的收银员

在 WHERE 子句中使用 CASE

MySQL:按字段排序,将空单元格放在末尾

如何用一系列日期填充表格?

mysqli_fetch_array() 期望参数 1 为 mysqli_result,布尔值

加快 mysql 转储和导入

带有 OuterRef 的简单子查询

应该使用什么列类型将序列化数据存储在 mysql 数据库中?

在 MySQL 的 LIMIT 子句中使用变量