Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 内部查询逗号分隔的结果_Sql_Database - Fatal编程技术网

Sql 内部查询逗号分隔的结果

Sql 内部查询逗号分隔的结果,sql,database,Sql,Database,我的问题是: SELECT project_type_name FROM project_type WHERE project_type_id IN (SELECT project_type_id FROM projects WHERE project_id = 93) 其中,内部查询返回1行,其中包含3个逗号分隔的值。2,3,4. 但外部查询仅为2返回1条记录 不能将逗号分隔的值字符串视为值列表。如果子查询总是返回一行,您可以使用如下方式: 为此,应使用find_in_set 选择项目类型名

我的问题是:

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

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

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


为此,应使用find_in_set

选择项目类型名称 从项目类型 其中,在项目集合中查找项目类型id

选择项目类型\u id 来自项目 其中project_id=93

有什么问题吗?子查询返回3个值,然后将这些值作为project\u type\u id搜索到project\u type?但您不应该在单个列中存储逗号分隔的值。阅读数据库normalization@jarlh,是的,我正在将项目类型id与所有这3个值进行匹配。@a\u horse\u与名称\u no\u我正在使用SQLyog进行查询测试。数据库已经由DBA完成,我只需要作为ML程序员获取记录:SQLyog不是DBMS,它是SQL客户机。这是无效的标准SQL。请说明这是为哪个DBMS工作的。这对我来说很有用。从项目类型中选择项目类型名称,其中在项目类型id中查找项目,从项目类型id=93@GiorgosBetsos mySQL的项目中选择项目类型id
SELECT project_type_name 
FROM project_type 
WHERE CONCAT(',', (SELECT project_type_id FROM projects WHERE project_id = 93), ',') 
      LIKE '%,' + project_type_id ',%'