簡體   English   中英

mysql按字段名順序包含在另一個表中的字段值

[英]mysql order by field name contained in another table field value

我有一個搜索查詢,在這里我需要按另一個表字段值中包含的字段進行排序。 也許不是很清楚:)

考慮一下:

        $requete = "
 SELECT A.*,
 (SELECT payspan FROM Categories WHERE id=A.category_id) AS SortingFieldName 
 FROM Annonces A 
 JOIN Categories C ON C.id=A.category_id
 WHERE A.deleted=0
 ORDER BY SortingFieldName";

我想這樣訂購,但不起作用: ORDER BY A.SortingFieldName

SortingFieldName將包含字段的名稱,但不包含Annonce表中該字段的值。

我如何獲取該字段的值然后排序?

我嘗試了一個變量,但似乎無法在查詢中使用變量...

為簡單起見,我想按“類別”中配置的字段對Annonces行進行排序。

像,如果我在Annonces中:id,name,category_id,price_day,price_month

並且在類別中:id,name,pricefield

我想根據類別的配置在Nononce中訂購價格為price_month或price_day的行。

感謝任何幫助。

用這個:

ORDER BY CASE SortingFieldName
            WHEN 'field1' THEN field1
            WHEN 'field2' THEN field2
            WHEN 'field3' THEN field3
            ...
         END

用實際的字段名稱替換field1field2等。

如果無法列出所有可能的字段名稱,則必須使用動態SQL編寫。

暫無
暫無

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

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