我想从表'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开头的记录。可以做到吗?有人可以告诉我如何实现吗?这将是什么查询?请帮忙。
答案 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
答案 1 :(得分:0)
在您选择的末尾添加ORDER BY columnname ASC
答案 2 :(得分:0)
MySQL将布尔表达式视为数字,其中0表示false,1表示true。在这种情况下这很方便:
order by (col like 'GXX%'), -- put these last
col