按字段值排序mysql结果

时间:2012-12-30 18:20:41

标签: php mysql

我试图按照X列名称...

从我的查询中过滤我的结果

我有以下......

$sth = $conn->prepare("SELECT * FROM directory
                        WHERE user_active != '' 
                          AND County = :county 
                       ORDER BY' . $row['Date'] .'" );

我想获取所有结果并从日期列中的值订购它们,这将存储为XX / XX / XXXX

任何人都可以看到我做错了什么?

4 个答案:

答案 0 :(得分:1)

什么是$row['Date']?您只能按列名称或列索引(1,2,3,...)进行排序,如

$sth = $conn->prepare("SELECT * FROM directory WHERE user_active != '' AND County = :county ORDER BY date" );

此外,您的查询错过了ORDER BY后面的空格。

答案 1 :(得分:0)

Gordon和AmShegar都为您提供了一条线索,说明为什么这不起作用。

要按日期订购结果,只需转到:

SELECT <fields>
FROM <table>
ORDER BY <datefield>

您可以使用“ASC”或“DESC”作为后缀,具体取决于您是希望使用较早的日期还是较新的日期。这都假定日期字段实际上是日期字段。

答案 2 :(得分:0)

尝试这样

$sth = $conn->prepare
        ("SELECT 
            * 
        FROM directory 
        WHERE user_active != '' 
        AND County = :county 
        ORDER BY '.$row['Date'].'

        DATE_FORMAT('$row['Date']','%m-%d-%Y'");

答案 3 :(得分:0)

按特定字段值排序必须FIELD( )

在你的例子中

  $sth = $conn->prepare("SELECT * FROM directory
                    WHERE user_active != '' 
                      AND County = :county 
                   ORDER BY FIELD( date , '.$row['Date'].')   " ); 
                                     ^---------------------------------column name    
                                                  ^^-------------------field value

exemple here