首页 > 解决方案 > 子查询返回一个包含记录 ID 列表的 TEXT 字段

问题描述

表中有一个字段('duplicate_record_ids'),每行包含多个记录 ID。我想在子查询中查询该字段以获取“duplicate_record_ids”中每个记录 ID 的特定字段(“名称”)。两个字段都在同一个表中。

我最初的假设是以下查询可以工作,但它只返回逗号分隔的“duplicate_record_ids”中第一个记录 id 的“名称”

select name from someTable where id in (select duplicate_record_ids from someTable)

duplicate_record_ids 是 TEXT 类型,只包含数值。id 是 int32。

我遇到了多个建议编写函数的答案,但是我希望无需编写函数即可完成此任务。

如果我先单独运行子查询并将结果复制并粘贴到顶部查询中,它就可以工作。我相信我错过了正确的语法。

在这件事上的任何帮助将不胜感激。提前致谢!

更新 来自Do WHERE ID IN 的答案带有一个子查询,该子查询返回一个 ID 字符串,用于单个记录,但不是所有记录。查询失败,出现以下错误“子查询返回超过 1 行”

标签: mysql

解决方案


推荐阅读