簡體   English   中英

如何在MySQL中使用多個條件對結果進行排序

[英]How to sort the result with multiple conditions in MySQL

我正在嘗試建立一個數據庫來存儲調查,問題和答案,以便我可以動態生成調查,捕獲答案並從中報告。

問題如何按以下順序對結果進行排序? 按* surveys_questions.sort *排序,但是,如果父代ID> 0,則需要將所有子代置於其下,並按* surveys_controls.sort *對子代進行排序。

我有5張桌子:

  1. 包含每個調查名稱的調查表(家庭收入調查)
  2. “問題”表用於存儲調查中所有的問題。 請注意parent_id列。 當我想提出子問題時,將使用一次
  3. 用於存儲可用工具的表格。 文本框,單選按鈕,復選框...
  4. “答案”表
  5. 一個表,用於存儲問題和相關工具之間的關系。 例如,問題1的工具ID為1(單選按鈕),默認情況下處於選中狀態...

現在我遇到的問題是我無法正確排序結果或答案。

您可以找到我的代碼並在此鏈接上運行查詢 http://sqlfiddle.com/#!2/2ee97/1

注意:我在此鏈接http://sqlfiddle.com/#!2/d9f6e3/4上創建了問題的縮小版本
如果有人可以幫助他解決這個問題,那么我將使用相同的解決方案來解決實際問題。

為您的ORDER BY行嘗試以下操作:

ORDER BY CASE WHEN q.parent_id = 0 THEN q.question_id WHEN q.parent_id !=0 THEN q.parent_id = 0 END ASC, q.sort, t.sort

這是提琴手

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM