请看一下这个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,名称
varchar(1),类别
varchar(11),价格
int,年
int)
;
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)
;
最佳答案
也许你可以尝试这样的事情:
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
关于mysql - 我可以使用一个语句从每一列中获取不同的行吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24696299/