mysql - 如何设置来自其他选择的mysql更新值

标签 mysql

在我的项目中,我有表 IDCA 和 IDCB。

我 cat 查询 sql 如下:

$liId=99;
select name from  IDCA  where stId='$liId';

结果是:

John
Stack
Shansa
Aliya
Stock

然后我用这些值设置 IDCB 的 allName。

update IDCB set allName=(select name from  IDCA  where stId='$liId') where stId='$liId';

但它工作失败。错误是:

ERROR 1242 (21000): Subquery returns more than 1 row

实际上,我想设置 allName='John,Stack,Shansa,Aliya,Stock'。那么谁可以帮助我呢?

最佳答案

尝试使用 GROUP_CONCAT()

update IDCB set allName=(
    select GROUP_CONCAT(name) 
    from  IDCA  
    where stId='$liId' GROUP BY stId)
where stId='$liId';

关于mysql - 如何设置来自其他选择的mysql更新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46881366/

相关文章:

php - 拉出 Oracle CLOB 与 VARCHAR2 不同吗?

mysql - 2个查询的比较(MySQL)

mysql - 一次触发多个操作,不起作用

mysql - 使用 JDBC 在 MyBatis 中回滚(无 Spring,无容器)

mysql - 使用 INSERT ON DUPLICATE KEY UPDATE 时生成的主键出现问题

php - fatal error : Call to a member function setFetchMode() on a non-object[Normal]

c# - C# 中的 LocalReports 导致 Microsoft.Reporting.WinForms.LocalProcessingException

php - 我在 mysql 查询中的最后一个 row_number 是多少?

mysql - WAMP phpmyadmin 414 错误

mysql - 如何将参数传递给函数?