通过列视图返回结果而不是mysql中的行视图

时间:2014-10-17 06:34:05

标签: mysql

我想知道是否有办法通过列返回我的结果。 Simple Select语句将返回

 _________________
| id  |  name    | 
|  1  | abc      | 
|  2  | abc1     | 
|  3  | abc2     |

有没有办法像我这样检索我的结果

| 1 |  abc  | 2 | abc1| 3 | abc2|

或喜欢

|1   | 2  | 3  |
|abc |abc1|abc2|

我只返回4列,我将数据用作其他查询的标题。请帮我。感谢

4 个答案:

答案 0 :(得分:3)

试试这个:

select group_concat(id,"|",name SEPARATOR '|') from T;

答案 1 :(得分:2)

您可以使用PIVOT来实现此目的。您需要使用MAXGROUP BY来模拟PIVOT

SELECT  Id,
    MAX(CASE WHEN Id = 1 THEN name END) col1,
    MAX(CASE WHEN Id = 2 THEN name END) col2
FROM    Table1
GROUP   BY Id

您需要根据分组数据所需的条件来决定。试试这个例子。

答案 2 :(得分:2)

试试这个..

查询

SELECT 
MAX
(
    CASE id WHEN 1 
    THEN name 
    ELSE NULL END
) AS `1`,
MAX
(
    CASE id WHEN 2 
    THEN name 
    ELSE NULL END
) AS `2`,
MAX
(
    CASE id WHEN 3 
    THEN name 
    ELSE NULL END
) AS `3` 
FROM tbl;

Demo

答案 3 :(得分:1)

我解决了我的问题,因为他们给了我线索,现在这是我的代码,我想分享它

SELECT
  MIN( CONCAT(title,"\n", DATE_FORMAT(start_time,'%h:%i %p')) ) col1,
  MAX( CONCAT(title,"\n", DATE_FORMAT(start_time,'%h:%i %p')) ) col2
 from table

谢谢大家