|
我有一个像下面的表格3 P% F# s4 D3 v1 Z8 A/ n6 J
( o/ e% |4 u4 z2 p1 o# A! Y CREATE TABLE Products(Product_id INT, ProductName VARCHAR(255),
* n7 K) b- J1 R Featured enum('Yes', 'No'), Priority enum('p1', 'p2', 'p3'))
' ^. e- |, W' O- M
! w: h4 B: X& e- j INSERT INTO Products(ProductName, Featured, Priority) - s- O$ i/ M# p; ?7 Y
VALUES('Product A', 'Yes', 'p1'),
/ w" N" C/ d0 ]" ^& M9 L [+ m ('Product B', 'No', 'p2'),5 V9 l0 @/ t4 f/ Z, j+ k, m/ y- C& w
('Product C', 'Yes', 'p1'),
3 f( E5 z+ [( ^/ X' D/ J ('Product D', 'No', 'p1'),
0 P8 |8 Y0 g) h0 y ('Product E', 'Yes', 'p3'),& F- ?4 S- `' C/ U# `% ~# }
('Product F', 'No', 'p2'),
6 M( X9 d& T1 E+ h, G# ~ ('Product G', 'Yes', 'p1'), z6 K6 W; ^ k% h
('Product H', 'Yes', 'p2'),
2 I6 b/ w6 O4 U& U: r ('Product I', 'No', 'p2'),) f4 v) X+ `; s
('Product J', 'Yes', 'p3'),
" {$ R' \/ a5 n% P" _2 V- F ('Product K', 'Yes', 'p1'),
' R7 _/ x% r* [ ('Product L', 'No', 'p3');
2 {) M4 N* T& r) N u. w; v3 L
( H8 _; k# @( q- Q: k我需要先获得特色产品,然后再选择优先级为p1,p2和p3的产品4 a8 v3 r! F3 E* x
Op:
% E4 L* h: a1 h# Y, u% D ProdName | Featured | Priority; L1 [% z1 T& E" ?
Product A Yes p1
. f. {( A3 O6 ]; V; Q D Product C Yes p1* b# w! s1 ?! c
Product G Yes p1
# X% P! l) g! u Product K Yes p1
2 A" ^* k4 ?6 ]$ b Product H Yes p2/ x; e) H. N0 K
Product E Yes p3( V/ Z9 [ N4 C$ B0 u
Product J Yes p3/ F# k( \: j, @8 r$ J- s* W
Product D No p14 \, r% H/ |; _8 C/ l7 k
Product B No p2' n% A8 M e/ ]* N7 \- K
Product F No p2$ g1 l& E% w I$ |4 B! |: o- C& P% l
Product I No p25 k1 D. }8 v- h. q/ Y$ s+ _
Product L No p3
$ i6 U& L7 v! m+ t! S( ^
, |: k6 o( y) Q2 W7 {) @我写了一个查询,在下面是行不通的。6 v% Q5 G! r1 W, D* j9 Y
SELECT * % V) l7 q5 @/ W' Q1 Y. p
FROM Products
: Q2 N; R( G+ x' c3 U. x ORDER BY Featured IN ('Yes') desc,9 U2 h) j( {( z' P. w& b3 m
Priority IN ('p1', 'p2', 'p3') desc: d; j7 {8 v+ t8 F
m' ^/ I G3 T; G' I
你能在那发现错误吗8 H* `# ~) |8 e. u& M1 Z
' Y1 U$ w( F g' C% T
解决方案:, g8 X7 a- b+ n- i# q! v9 b6 L
, I( `% y, O, M* b3 N
* V! y, C3 k, E; ~" A
/ G- a, Y6 u" \% N 试试这个
' H9 r/ T8 `! O1 R1 X; i) h, VSelect * from Products ORDER BY Featured, Priority
" ~% N' B6 g! ^- E6 o8 e3 j6 z如果您在mysql枚举上使用ORDER BY,则不会按字母顺序对其进行排序,而是会按其在枚举中的位置对其进行排序。2 ^ a3 `: w3 }1 z, p) F
如果要按照描述的字母顺序排序,请将枚举名称转换为这样的字符串! X0 n% Q4 ]/ N
Select * from Products ORDER BY concat(Featured) desc , Priority |
|