我的查询是:
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。
答案 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 ',%'