在mysql中的第m行之后获取第n行

时间:2019-09-19 09:55:36

标签: sql sql-server

我想从表'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开头的记录。可以做到吗?有人可以告诉我如何实现吗?这将是什么查询?请帮忙。

3 个答案:

答案 0 :(得分:1)

您可以将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

答案 1 :(得分:0)

在您选择的末尾添加ORDER BY columnname ASC

答案 2 :(得分:0)

MySQL将布尔表达式视为数字,其中0表示false,1表示true。在这种情况下这很方便:

order by (col like 'GXX%'),  -- put these last
         col