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

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

如何使用 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 字段进行比较。

以上就是如何将子查询中的参数与外层 SQL 语句中的字段进行比较?的详细内容,更多请关注其它相关文章!