MySQL按案例排序
我不能让它为我工作MySQL按案例排序,mysql,sql,Mysql,Sql,我不能让它为我工作 ORDER BY cl.name ASC'); 我必须改为: ORDER BY CASE cl.name WHEN "Nameone" THEN 0 WHEN "Nametwo" THEN 1 ELSE 2 END ASC 我得到了结果 1. Nameone 2. Nametwo (其余的,但不是按名称从A-Z排序,而是按id显示) 那么,如何使其余结果按cl.name ASC排序?只需在ORDER by子句中添加第二级排序: ORDER BY CASE WH
ORDER BY cl.name ASC');
我必须改为:
ORDER BY CASE cl.name WHEN "Nameone" THEN 0 WHEN "Nametwo" THEN 1 ELSE 2 END ASC
我得到了结果
1. Nameone
2. Nametwo
(其余的,但不是按名称从A-Z排序,而是按id显示)
那么,如何使其余结果按cl.name ASC排序?只需在
ORDER by
子句中添加第二级排序:
ORDER BY
CASE WHEN cl.name = 'Nameone' THEN 0
WHEN cl.name = 'Nametwo' THEN 1
ELSE 2 END,
cl.name -- add this sort condition
请注意,添加
cl.name
作为第二个排序条件对名称为Nameone
或nametoo
的记录无效,因为这些记录的名称始终相同。只需在ORDER BY
子句中添加第二级排序:
ORDER BY
CASE WHEN cl.name = 'Nameone' THEN 0
WHEN cl.name = 'Nametwo' THEN 1
ELSE 2 END,
cl.name -- add this sort condition
请注意,添加
cl.name
作为第二个排序条件对名称为Nameone
或Nametwo
的记录没有任何影响,因为这些记录的名称总是相同的。在MySQL中,如果愿意,可以使用field()
函数:
order by field(c1.name, 'Nametwo', 'NameOne') desc,
c1.name
参数的顺序相反,因为当找不到字符串时,
field()
默认为0 在MySQL中,如果愿意,可以使用field()
函数:
order by field(c1.name, 'Nametwo', 'NameOne') desc,
c1.name
参数的顺序相反,因为当找不到字符串时,
field()
默认为0 您可以通过这样的条款更改订单
当'Nameone'时按案例cl.name排序,当'Nameone'时按案例cl.name排序,然后当'nameo2'时按案例'0'排序,然后按案例'1'排序,否则继续('2',合并(cl.name'))结束ASC
您可以通过以下条款更改订单
当'Nameone'时按案例cl.name排序,当'Nameone'时按案例cl.name排序,然后当'nameo2'时按案例'0'排序,然后按案例'1'排序,否则继续('2',合并(cl.name'))结束ASC
双引号“
平均字段名,单引号(')平均字符串。您需要哪一个?顺便说一下,您不需要ASC。这是默认选项。双引号”
平均字段名,单引号(')平均字符串。你需要哪一个?顺便说一句,你不需要ASC。默认情况下,这是一个选项。