内部查询逗号分隔结果

时间:2016-10-28 07:17:09

标签: sql database

我的查询是:

SELECT project_type_name FROM project_type WHERE project_type_id IN
(SELECT project_type_id FROM projects WHERE project_id = 93)

其中内部查询返回包含3个逗号分隔值的1行。 (2,3,4)。但外部查询仅返回2条记录仅为2。

2 个答案:

答案 0 :(得分:1)

您应该将find_in_set用于此目的。

SELECT project_type_name FROM project_type WHERE FIND_IN_SET(project_type_id,(

SELECT project_type_id 来自项目 WHERE project_id = 93 ))

答案 1 :(得分:0)

您不能将逗号分隔值的字符串视为值列表。如果子查询返回总是一行,则可以使用LIKE

SELECT project_type_name 
FROM project_type 
WHERE CONCAT(',', (SELECT project_type_id FROM projects WHERE project_id = 93), ',') 
      LIKE '%,' + project_type_id ',%'