我正在使用子查询来获取所有 qcode,并将其作为参数传递给 mysql 中的另一个查询。但是内部查询正在返回值,例如-
SELECT qcodes FROM boardmst WHERE id=10
10002','10028','10031','10202','10226
那么如何解析它以传递另一个带有 IN 子句的查询呢?
SELECT * FROM users WHERE qcodes IN (SELECT qcodes FROM boardmst WHERE id=10)
我正在使用子查询来获取所有 qcode,并将其作为参数传递给 mysql 中的另一个查询。但是内部查询正在返回值,例如-
SELECT qcodes FROM boardmst WHERE id=10
10002','10028','10031','10202','10226
那么如何解析它以传递另一个带有 IN 子句的查询呢?
SELECT * FROM users WHERE qcodes IN (SELECT qcodes FROM boardmst WHERE id=10)
如果您只有五个以逗号分隔的值,那么下面的查询可以派上用场:
SELECT * FROM users WHERE qcodes IN (
select regexp_substr(replace(qcodes,''',''',','),'[^, ]+',1,level)
from boardmst where id = 10 connect by level <= 5)
除了外部缺少的引号(也许这不是内部问题产生的确切答案),这正是 MySQL 期望的 IN 子句的内容。您只需确保qcodes列的定义在users和boardmst表之间是相同的。