然后计算PHP和MySQL中的排序函数

时间:2016-07-19 03:55:29

标签: php mysql sorting count

我有这个数据库,其中有名为Mall的列(它包含不同的Malls名称),NameOfStore(它包含商店名称)和AMEX(它包含YES或NO,具体取决于商店是否接受American Express)。

我想要做的是计算每个商场接受美国运通商店的商店数量,然后根据他们接受美国运通商店的商店数量以递减的方式对商场进行分类。我想在下拉列表表单中加入“排序”功能,我的程序的用户可以选择是否要对具有最多AMEX的商场进行排序等。我能够为我的“过滤器”制作一个下拉列表条件“功能,但此排序功能有很大不同。

我不确定我将如何合并并正确排序这些查询的逻辑。

 function sortStore($conn, $sort)
    {
    $table = "table1";
    $column1 = "Mall";
    $column2 = "NameOfStore";
    $condition = "AMEX = 'YES'"

    $query = Select Count($column2) from $table where $condition AND $sort";
    ..other codes..
    //$sort would contain cases (one case for each mall)
    //Example: case "Mall1": $sort = "Mall = 'Mall1'; break;
    //I'm actually not sure if the logic on my query is correct based on what I want to happen
    }

然后我想按照他们所拥有的商店的数量按照降序接受AMEX来订购购物中心。我需要使用ORDER BY函数,但我不确定将它放在这个特定的上下文中。

内容:

下拉列表

用户选择他想要对商场进行分类的类别(例如:AMEX商店数量,餐馆数量等)

程序显示所选类别的购物中心的有序列表

2 个答案:

答案 0 :(得分:1)

此查询应该为您提供所需的结果。

select mall, count(AMEX) AS AMXCNT 
from table1 
WHERE AMEX='yes' 
GROUP BY MALL ORDER BY AMXCNT

答案 1 :(得分:0)

您希望使用mfence运算符创建一个代表商店符合条件的好数字,然后将它们相加。然后你可以对此进行排序。像这样:

if