【问题标题】:Can I use one statment to get distinct rows from each column我可以使用一条语句从每一列中获取不同的行吗
【发布时间】:2014-07-11 11:09:42
【问题描述】:

请看看这个fiddle

是否可以将这四个不同的查询组合成一个语句?

SELECT DISTINCT(name) from `product` order by name;
SELECT DISTINCT (category) from `product` order by category;
SELECT DISTINCT (price) from `product` order by price;
SELECT DISTINCT (year) from `product` order by year;

我想从每列中获取不同的行并以 JSON 格式返回选择框选项的结果,但我不知道如何在不使用四个独立的选择语句的情况下返回如下结果:

NAME   
A
C
D
E
G

CATEGORY
Brainteaser
Doll
Outdoor

PRICE

20
22
25
30
34

YEAR

2008
2009
2010

表: 创建表产品 (ID int, name varchar(1), category varchar(11), price int,yearint) ;

INSERT INTO product
    (`ID`, `name`, `category`, `price`,`year`)
VALUES
    (1, 'A', 'Outdoor', 25,2010),
    (2, 'A', 'Doll', 34,2009),
    (3, 'C', 'Doll', 25,2008),
    (4, 'D', 'Outdoor', 20,2010),
    (5, 'E', 'Brainteaser', 22,2010),
    (6, 'E', 'Brainteaser', 22,2009),
    (7, 'G', 'Brainteaser', 30,2009),
    (8, 'G', 'Brainteaser', 30,2009)
;

【问题讨论】:

    标签: mysql sql group-by distinct


    【解决方案1】:

    也许你可以尝试这样的事情:

    SELECT DISTINCT(name) FIELDVALUE, 'NAME' FIELDNAME from `product` 
    UNION
    SELECT DISTINCT (category) FIELDVALUE, 'CATEGORY' FIELDNAME from `product` 
    UNION
    SELECT DISTINCT (price) FIELDVALUE, 'PRICE' FIELDNAME  from `product` 
    UNION
    SELECT DISTINCT (year) FIELDVALUE, 'YEAR' FIELDNAME  from `product` ;
    

    输出如下:

    FIELDVALUE      FIELDNAME
    A               NAME
    C               NAME
    D               NAME
    E               NAME
    G               NAME
    Outdoor         CATEGORY
    Doll            CATEGORY
    Brainteaser     CATEGORY
    25              PRICE
    34              PRICE
    20              PRICE
    22              PRICE
    30              PRICE
    2010            YEAR
    2009            YEAR
    2008            YEAR
    

    【讨论】:

      猜你喜欢
      • 2021-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-06
      • 1970-01-01
      • 2020-03-06
      • 1970-01-01
      • 2017-04-28
      相关资源
      最近更新 更多