Mysql 将特殊名称排序到数据库中的结尾
我想对mysql表进行排序Mysql 将特殊名称排序到数据库中的结尾,mysql,Mysql,我想对mysql表进行排序 select id,name from tbl order by name asc; 返回 1 name1 2 name2 4 name3 5 name4 8 name5 1 name1 2 name2 5 name4 8 name5 4 name3 如何排序,例如名称3到表的末尾,如 select id,name from tbl order by ["name is name3????"],name asc; 返回 1 name1 2
select id,name from tbl order by name asc;
返回
1 name1
2 name2
4 name3
5 name4
8 name5
1 name1
2 name2
5 name4
8 name5
4 name3
如何排序,例如名称3到表的末尾,如
select id,name from tbl order by ["name is name3????"],name asc;
返回
1 name1
2 name2
4 name3
5 name4
8 name5
1 name1
2 name2
5 name4
8 name5
4 name3
谢谢使用
案例
可以根据条件返回值。因此,您可以为name3
返回1,为其他名称返回0。主要根据该值排序,将name3放在后面。第二个排序值是名称,因此其他名称仍按字母顺序排序
select
id, name
from
tbl
order by
case when name = 'name3' then 1 else 0 end,
name
草莓刚刚在评论中告诉我,你也可以使用这个函数来实现这一点。如果您想为多个名称指定特定的排序,这尤其方便且更紧凑。使用case
会很快变得笨重Field
返回其他字符串列表中第一个字符串的索引,因此Field(name,'name3','name4')
将为'name3'返回1,为'name4'返回2,为所有其他名称返回0
您的查询将如下所示:
select
id, name
from
tbl
order by
field(name, 'name3'),
name
使用
case
可以根据条件返回值。因此,您可以为name3
返回1,为其他名称返回0。主要根据该值排序,将name3放在后面。第二个排序值是名称,因此其他名称仍按字母顺序排序
select
id, name
from
tbl
order by
case when name = 'name3' then 1 else 0 end,
name
草莓刚刚在评论中告诉我,你也可以使用这个函数来实现这一点。如果您想为多个名称指定特定的排序,这尤其方便且更紧凑。使用case
会很快变得笨重Field
返回其他字符串列表中第一个字符串的索引,因此Field(name,'name3','name4')
将为'name3'返回1,为'name4'返回2,为所有其他名称返回0
您的查询将如下所示:
select
id, name
from
tbl
order by
field(name, 'name3'),
name
@草莓-你是说?很好,我不知道该函数,但如果我理解正确,您可以将我的查询更改为按字段排序(name,'name3'),name
。谢谢你的提示!不,我是指字段()!?;-)@草莓-你是说?很好,我不知道该函数,但如果我理解正确,您可以将我的查询更改为按字段排序(name,'name3'),name
。谢谢你的提示!不,我是指字段()!?;-)