mysql按字段名称顺序包含在另一个表字段值中

时间:2014-04-18 22:00:58

标签: php mysql

我有一个搜索查询,我需要按照另一个表字段值中包含的字段进行排序。 也许不太清楚:))

考虑一下:

        $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,名称CATEGORY_ID,price_day,price_month

并在分类中: ID,名称pricefield

我想根据类别的配置在Annonce中订购price_month或price_day的值。

请求任何帮助。

1 个答案:

答案 0 :(得分:0)

使用此:

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

field1field2等替换为实际的字段名称。

如果您无法列出所有可能的字段名称,则必须编写使用动态SQL。