我试图定义一个自定义ORDERY BY城市。按城市定义自定义订单
事情是这样的:
New York (255)
Paris (26)
Vien(15)
然后ORDER BY city ASC
。
我试过这个查询,这是行不通的:
SELECT count(id_item) as q, city FROM item GROUP BY city ORDER BY FIELD(city,'New York','Paris','Vien'), city ASC
我试图定义一个自定义ORDERY BY城市。按城市定义自定义订单
事情是这样的:
New York (255)
Paris (26)
Vien(15)
然后ORDER BY city ASC
。
我试过这个查询,这是行不通的:
SELECT count(id_item) as q, city FROM item GROUP BY city ORDER BY FIELD(city,'New York','Paris','Vien'), city ASC
你可以做这样的事情:
SELECT
count(id_item) as q,
city
FROM
item
GROUP BY
city
ORDER BY
(
CASE
WHEN city='New York' THEN 1
WHEN city='Paris' THEN 2
WHEN city='Vien' THEN 3
ELSE 4
END
) ASC,
city ASC
可以order by city='New York' desc, city='Paris' desc, city='Vien' desc, city
甚至order by city in ('New York', 'Paris', 'Vien') desc, city
因为这些3已按字母顺序排列
ORDER BY关键字默认按升序排列记录。要按降序对记录进行排序,可以使用DESC关键字。试试这个 -
SELECT count(id_item) as q, city FROM item GROUP BY city ORDER BY city;
对于降,你可以做这样的事情 -
SELECT count(id_item) as q, city FROM item GROUP BY city ORDER BY city DESC;
取得与自己的优先顺序行,SELECT查询将如下:
SELECT
count(id_item) as q,
city
FROM
item
GROUP BY
city
ORDER BY
(
CASE
WHEN city='New York' THEN 1
WHEN city='Paris' THEN 2
WHEN city='Vien' THEN 3
ELSE 4
END
) ASC,
city ASC
是什么你想做什么? –
count只返回1行或ans?你确定这个查询是正确的?尝试没有计数,因为结果是 –
你得到了什么错误? –