【问题标题】:Ordering the result from database starting from the number 1从数字 1 开始从数据库中排序结果
【发布时间】:2016-03-10 16:58:41
【问题描述】:

我需要对我从数据库中得到的结果进行排序,从数字 1 开始,一直到有多少行。我怎么做?

SELECT * FROM tableName WHERE section = '1'

结果:

id | name | section
56 | Adam | 1
57 | Mary | 1
58 | Kate | 1

需要结果:

index | id | name | section
1     | 56 | Adam | 1
2     | 57 | Mary | 1
3     | 58 | Kate | 1

P.S:不,索引不是表中的列名。

【问题讨论】:

    标签: php mysql database select mysqli


    【解决方案1】:

    当您查询行并循环遍历结果时,只需使用循环索引+1:

    for ($i=0; $i<count($rows); $i++)
    {
        echo ($i+1)." | ".$rows[$i]["id"]." | ".$rows[$i]["name"]." | ".$rows[$i]["section"];
    }
    

    或者一个foreach循环和一个计数器:

    $counter = 1;
    
    foreach ($rows as $row)
    {
        echo $counter." | ".$row["id"]." | ".$row["name"]." | ".$row["section"];
    }
    

    【讨论】:

      【解决方案2】:

      你可以使用这个查询:

      SELECT *,ROW_NUMBER() OVER (ORDER BY id) AS index FROM tablename;
      

      你会在这里找到解释:http://blog.sqlauthority.com/2015/05/05/sql-server-generating-row-number-without-ordering-any-columns/

      【讨论】:

      • 好吧,我使用了相同的查询,得到了结果。请参考链接。它可能会帮助你。
      • ROW_NUMBER() 不是 mysql 函数,它可用于 oracle 或 mssql 等。
      • 好的.. 我观察到它也适用于 PostgreSQL。 :)
      【解决方案3】:

      您可以使用用户定义的变量:

      SELECT @rownum:=@rownum + 1 `index`, t.*
      FROM tableName t, (SELECT @rownum:=0) r
      WHERE t.section = '1'
      

      【讨论】:

      • 非常好。我喜欢它。
      【解决方案4】:

      要对来自 mysql 的数据进行排序,请在您的 select 语句末尾添加 ORDER BY column_name ASC|DESC,以便将您的 select 语句更改为: SELECT * FROM tableName WHERE section = '1' ORDER BY ID ASC 在您逐步显示要显示的数据行的 php 代码中,只需添加一个计数器,该计数器递增并显示每行数据的计数。 例如: $count=0; echo "index | id | name | section<br />\n"; while($row = mysqli_fetch_array($result)) { $id = $row['id']; $name = $row['name']; $section = $row['section']; $count++; echo $count." | ".$id." | ".$name." | ".$section."<br />\n"; }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-16
        • 2023-03-19
        • 2015-02-28
        • 2021-05-10
        • 1970-01-01
        • 1970-01-01
        • 2020-05-06
        相关资源
        最近更新 更多