UPDATE test_copy1_copy1_copy1 SET id = (SELECT GROUP_CONCAT(b.id,',',c.id) FROM test_copy1 b JOIN test_copy1_copy1 c on b.id_card = c.id_card GROUP BY b.id_card,c.id_card)
时间: 2023-05-15 21:06:26 浏览: 47
这是一个 SQL 语句,它的作用是将 test_copy1_copy1_copy1 表中的 id 字段更新为 test_copy1 表和 test_copy1_copy1 表中 id_card 相同的记录的 id 字段的组合。具体实现需要根据数据库的具体情况进行调整。
相关问题
1;set sql_mode=PIPES_AS_CONCAT;select 1
执行 `1;set sql_mode=PIPES_AS_CONCAT;select 1;` 这条语句会产生两个结果:
1. 首先,执行 `1` 这个语句并不会有实际的含义,因此不会产生任何输出。
2. 接下来,执行 `set sql_mode=PIPES_AS_CONCAT;` 这个语句会将 SQL 模式设置为 PIPES_AS_CONCAT。这会改变管道符号(||)的含义,使其成为字符串的连接运算符。
3. 最后,执行 `select 1;` 这个语句会返回一个结果集,其中只包含一个值为 1 的列。
需要注意的是,在一次查询中执行多个语句时,每个语句必须使用分号(;)进行分隔。
UPDATE data_catalog_dept_group_statistics_temp t, ( SELECT c.cata_group_id AS group_id, count( 1 ) AS cata_amount FROM data_catalog c WHERE is_del = 0 AND cata_group_id LIKE CONCAT('3071140224','%') GROUP BY c.cata_group_id )tmp set t.base_cata_amount = tmp.cata_amount where t.group_id = tmp.group_id; 语法哪里有问题
这段 SQL 语句的语法是有问题的,问题在于子查询的 SELECT 子句中,GROUP BY 子句最后缺少了一个空格。正确的写法应该是:
```
UPDATE
data_catalog_dept_group_statistics_temp t,
(
SELECT
c.cata_group_id AS group_id,
count(1) AS cata_amount
FROM
data_catalog c
WHERE
is_del = 0 AND
cata_group_id LIKE CONCAT('3071140224', '%')
GROUP BY
c.cata_group_id
) tmp
SET
t.base_cata_amount = tmp.cata_amount
WHERE
t.group_id = tmp.group_id;
```
在子查询中,GROUP BY 子句最后的 AS 子句之后需要加一个空格,否则会被认为是一个新的字段,导致语法错误。