0

我想通过查询获得有组织的数据

表格1:

Name     Val     Pid
CA1      2      123
CA2      3      123
CA3      9      123
CA5      6      123
CA4      3      123

我想编写一个查询,它只为我提供父 ID 的 Val,但采用结构化格式,

我想得到像 2 3 9 3 6 这样的值

如果我只是这样做

select val from table1 where pid='123'

我会得到 2 3 9 6 3 格式为 CA1,CA2,CA3,CA5,CA4

所需的输出: 但我想要格式为CA1、CA2、CA3、CA4、CA5的 2 3 9 3 6 中的值

结果应该是给定的结构化格式,pid而不考虑它在名称列中的存储顺序,如上所述。

4

3 回答 3

1

如果您希望仅按顺序排列名称,则可以使用该ORDER BY子句

select * from table1 order by Name asc
于 2013-11-11T09:05:19.570 回答
0
SELECT 
    GROUP_CONCAT(Val ORDER BY Name ASC SEPARATOR  ' ') 
FROM  
    tablename 
WHERE 
     Pid = '123'
GROUP BY 
     Pid;

演示在http://sqlfiddle.com/#!2/156ca/11

于 2013-11-11T09:20:36.873 回答
0

试试这个...

select val from table1 where pid='123' order by Name asc

或所有列

select * from table1 where pid='123' order by Name asc
于 2013-11-12T03:25:28.110 回答