使用mysql select query时,我需要将列值取为是/否,而不是获得0/1

时间:2017-04-28 06:09:31

标签: mysql

修改列名称,类型为tinyint(1)。 如何使用选择查询将列值提取为是/否。 并且我在一个包中有3个文档名称,而使用select查询时,文档名称被拆分为具有相同包名称的三行。

以下是该列已拆分为三行的示例: 预期产出:

name | data    

abc | a,b,c def | be

实际输出:

name | data
abc | a
abc | b
abc | c
def | be

这是代码: select p.filename,p.version,doc.name from certificate_packages cp join packages p on cp.package_id=p.id left join package_documents pd on p.id=pd.package_id left join documents doc on doc.id=pd.document_id where cp.certificate_id=1099;

[![Attached the screenshot][1]][1]

Group_Concat

Before group by file name After group by file name

1 个答案:

答案 0 :(得分:0)

根据我们的评论,最终解决方案是。您需要提供gorup_by p.filename,p.version ;列名称,如此

select p.filename,p.version,GROUP_CONCAT(doc.name) AS name 
from certificate_packages cp 
join packages p 
on cp.package_id=p.id 
left join package_documents pd 
on p.id=pd.package_id 
left join documents doc 
on doc.id=pd.document_id 
where cp.certificate_id=1099 
p.filename,p.version ;