欢迎您访问新疆栾骏商贸有限公司,公司主营电子五金轴承产品批发业务!
全国咨询热线: 400-8878-609

新闻资讯

技术学院

如何将子查询中的参数与外层 SQL 语句中的字段进行比较?

作者:花韻仙語2024-11-02 00:00:00

如何使用 sql 语句中传递参数

本问题涉及在 sql 语句中传递参数,具体如下:

update post set content = (
    select group_concat(id) as ids
    from article
    where pid = 'id'
)
where id < 720

问题:

问题中的代码需要将 article 表中 pid 字段等于 post 表 id 字段的记录的 id 值拼接在一起。但目前代码中的 id 却是作为字符串,无法与 post 表中的 id 字段比较。

答案:

为了解决这个问题,我们需要使用子查询并将 post 表别名为 a:

UPDATE post a SET content = (
    SELECT group_concat(id) AS ids
    FROM article
    WHERE pid = a.id
)
WHERE a.id < 720

此修改将 pid 替换为 a.id,使其与子查询中的 id 字段进行比较。