从数字1开始从数据库中排序结果

时间:2015-12-05 20:51:42

标签: php mysql database select mysqli

我需要从数字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:不,索引不是表格中的列名。

4 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

在查询行并遍历结果时,只需使用循环索引+ 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 :(得分:0)

要订购来自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"; }

答案 3 :(得分:-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/