首页 > 解决方案 > 在mysql中的第m行之后获取第n行

问题描述

从表 'user' 获取所有行后,我想获取一些特定的行。'user' 表有 10 条这样的记录

1 . ABCD
2 . hfdff
3 . uiyuiyoy
4 . uytitito
5 . piooioi
6 . GXX jhjkhh
7 . GXX uyyto
8 . GXX upupu
9 . tytuyur
10 . zvsfsgsg

所以我想显示这样的结果

1 . ABCD
2 . hfdff
3 . uiyuiyoy
4 . uytitito
5 . piooioi
6 . tytuyur
7 . zvsfsgsg 
8 . GXX jhjkhh
9 . GXX uyyto
10 . GXX upupu

我想获取最后以 GXX 开头的记录。可以做到吗?谁能告诉我如何实现这一目标?对此的查询是什么?请帮忙 。

标签: sqlsql-server

解决方案


您可以将case..when表达式与substr()函数一起使用:

order by case when substring(str,1,3) = 'GXX' then 1 else 0 end, str

这会将值从GXX底部开始,但是如果您完全根据所需的输出进行排序,则更喜欢使用它,而不是:

order by case when substring(str,1,3) = 'GXX' then 1 else 0 end, case when substring(str,5,1) = 'u' then str else 'z' end desc

Demo


推荐阅读