我有表「業務」爲波紋管按字段,指定字段順序是:在最後
我想在客戶訂單類型來獲取該記錄順序。爲了所以我寫了像 SELECT *查詢FROM business
ORDER BY字段(類型,「3型」,「2型」,「類型10」)
但什麼發生的是其他類型的出現和給定的順序變爲持續。給定的順序應該在頂部,然後是其他記錄。以上查詢返回結果如下。
如何將type3,type2和type10放在最前面。
我有表「業務」爲波紋管按字段,指定字段順序是:在最後
我想在客戶訂單類型來獲取該記錄順序。爲了所以我寫了像 SELECT *查詢FROM business
ORDER BY字段(類型,「3型」,「2型」,「類型10」)
但什麼發生的是其他類型的出現和給定的順序變爲持續。給定的順序應該在頂部,然後是其他記錄。以上查詢返回結果如下。
如何將type3,type2和type10放在最前面。
所以這將是:
SELECT
*
FROM
business
ORDER BY
`type` IN ('type3', 'type2', 'type10'),
FIELD (`type`, 'type3', 'type2', 'type10')
嘗試以下:
ORDER BY
CASE `type`
WHEN 'type3' THEN 1
WHEN 'type2' THEN 2
WHEN 'type10' THEN 3
ELSE 4
END
要查看使用field
功能,你必須使用這些要麼ASC
或DESC
結果集的頂部選擇性數據一組值。否則,將返回默認結果。你的就是一個例子。
您可以
ORDER BY FIELD (type, 'type3', 'type2', 'type10') DESC
嘗試看看結果作爲
type10
type2
type3
如何把在頂部的3型,2型和類型10爲了
使用ASC
將導致
type3
type2
type10
數據的輸入順序的功能Field
是優先用於顯示與ASC
或DESC
使用時。否則結果將是默認值。
這些字段我沒有在查詢
他們肯定會在結果集,除非你指定一個WHERE
條件給出。 FIELD
函數不是WHERE
子句的別名。
參考: