use*_*187 12 mysql sql database
我有一张像下面这样的表
CREATE TABLE Products(Product_id INT, ProductName VARCHAR(255), Featured enum('Yes', 'No'), Priority enum('p1', 'p2', 'p3')) INSERT INTO Products(ProductName, Featured, Priority) VALUES('Product A', 'Yes', 'p1'), ('Product B', 'No', 'p2'), ('Product C', 'Yes', 'p1'), ('Product D', 'No', 'p1'), ('Product E', 'Yes', 'p3'), ('Product F', 'No', 'p2'), ('Product G', 'Yes', 'p1'), ('Product H', 'Yes', 'p2'), ('Product I', 'No', 'p2'), ('Product J', 'Yes', 'p3'), ('Product K', 'Yes', 'p1'), ('Product L', 'No', 'p3');
我需要获得精选产品,然后是优先级为p1,p2和p3的产品
Op: ProdName | Featured | Priority Product A Yes p1 Product C Yes p1 Product G Yes p1 Product K Yes p1 Product H Yes p2 Product E Yes p3 Product J Yes p3 Product D No p1 Product B No p2 Product F No p2 Product I No p2 Product L No p3
我在下面写了一个查询无效的查询..
SELECT * FROM Products ORDER BY Featured IN ('Yes') desc, Priority IN ('p1', 'p2', 'p3') desc
你能不能发现错误
gan*_*esh 16
试试这个
Select * from Products ORDER BY Featured, Priority
Run Code Online (Sandbox Code Playgroud)
如果在mysql枚举上使用ORDER BY,它将不按字母顺序排序,但它将按枚举中的位置对其进行排序.
如果您想按照描述的方式按字母顺序排序,请将枚举名称强制转换为此类字符串
Select * from Products ORDER BY concat(Featured) desc , Priority
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
29547 次 |
最近记录: |