回答

收藏

按最后2个字符的字符串排序

技术问答 技术问答 195 人阅读 | 0 人回复 | 2023-09-13

这是我查询的结果,但顺序不正确。我想按最后2个字符排序。结果应为:Fa0/10下面Fa0/9。
& ~# e1 O( F! aFa0/1
& ~; M4 B) J! G( b" Z% T- MFa0/10
. S) t6 `# g2 m. iFa0/11
+ x; [- v! E5 W9 }" g7 l$ @Fa0/12
# j- W0 t) d$ z6 C* e; @/ b2 h4 w, SFa0/2/ f0 t3 h8 K9 A* j" ?: i% v& E
Fa0/3
; a) D  [) F3 _Fa0/40 H% G; ?% ?1 a6 Z
Fa0/5
0 q& q' S& I% u( l3 zFa0/62 {6 o/ ]1 u0 L+ ~5 a; c; \
Fa0/74 G3 _' h' Z- B" w  _1 \5 ?" Y2 ~
Fa0/8
" k0 G2 f; }  ~2 K! R& qFa0/9
& l5 H5 i4 K5 F4 Z6 e1 YGi0/1, u. `5 s6 h2 Z" H( Y8 m% ~8 T( I; s. S
Gi0/2
  I$ |! Z6 I$ H6 X+ dNull0( {* f- y2 d3 @: L
Vlan15 Q5 ^9 `9 k& Q! {8 B
我的查询:. U8 K; W" H' G; F* ?
SELECT inft.port FROM interfaces AS intf ORDER BY RIGHT(intf.port + 0, 2)
1 z/ P2 y6 b+ D第二:sqlfiddle
9 @7 u7 Y! `% V. j: i               
4 v1 t1 H4 i# K" {解决方案:* C. C" U  |8 \- f8 b  D3 N: r
               
0 r! Y! I* {# U+ r+ x; I8 |3 ]2 F) }6 J1 l% e/ c$ [
4 h  n, j+ j4 j) t6 p5 a9 x4 u
                试试这个:  p: v8 G: |. `* P5 O
SELECT port
( \2 y; b. V+ B7 N3 k; ~FROM interfaces % [7 u0 `8 V$ K( q$ N+ K" @
ORDER BY SUBSTRING_INDEX(port, '/', 1), CAST(SUBSTRING_INDEX(port, '/', -1) AS SIGNED)) W, u4 A* z8 M) q+ ^4 v  a% \0 n
检查 SQL FIDDLE DEMO
. S: S1 r0 M( }" j输出
; ~" h2 z1 z' ^& g$ t: t, m/ F5 M|   PORT |
2 A. v( f1 y4 {0 e( o% h|--------|
) o3 H6 {% A- A& Z8 @' W  @|  Fa0/1 |0 s6 c: L0 K( V7 s; t$ ?
|  Fa0/2 |
" K0 h6 W0 p) X: P' M9 U|  Fa0/3 |- C* k1 T: ]- X7 f
|  Fa0/4 |
5 P1 k" h; M0 S; O( ?) o|  Fa0/5 |- S! n' o% s! `7 x
|  Fa0/6 |2 H. L" s; p4 G  [- }& ~9 U
|  Fa0/7 |
* y4 y, U  M: s" b7 q( A% ]- z6 I|  Fa0/8 |
! \+ y' z- [2 ?2 h2 E1 O" z2 W|  Fa0/9 |0 S7 E: K# L7 Q
| Fa0/10 |
" U' v# W9 _  `; y| Fa0/11 |
. t8 G( o% x0 e6 C6 l/ ^9 {| Fa0/12 |
" M3 l& A+ o  ?8 f9 H& @3 V0 Z* A|  Gi0/1 |: d4 C; a1 e& k1 C' Y
|  Gi0/2 |+ t7 Z& A& g* q3 C1 ?- Z. ?9 f
|  Null0 |
5 J9 v  z  K, C+ E" i/ [7 V' D|  Vlan1 |
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则