如何在php中从另一个键排序和更新唯一键

如何在php中从另一个键排序和更新唯一键,php,mysql,sql,sorting,Php,Mysql,Sql,Sorting,在我的表中添加一个新条目后,我无法对我的唯一键进行排序。。。 例如,我有学生id的std_id作为唯一键,还有学生名字和学生姓氏的std_fname和std_lname,我想在我将新学生添加到MySQL表时,以前的std_id更新为按姓氏排序的新学生。。。 我测试了很多方法,但是我找不到任何答案。。。我是PHP新手 此代码仅适用于从第二个条目开始的第一个条目所有std_id更改为std_pk实际上第三部分在第一个条目之后不执行 std_pk是我的主键,它是自动递增的 谢谢 这是我测试的许多方法之

在我的表中添加一个新条目后,我无法对我的唯一键进行排序。。。 例如,我有学生id的std_id作为唯一键,还有学生名字和学生姓氏的std_fname和std_lname,我想在我将新学生添加到MySQL表时,以前的std_id更新为按姓氏排序的新学生。。。 我测试了很多方法,但是我找不到任何答案。。。我是PHP新手

此代码仅适用于从第二个条目开始的第一个条目所有std_id更改为std_pk实际上第三部分在第一个条目之后不执行

std_pk是我的主键,它是自动递增的

谢谢

这是我测试的许多方法之一

$query=mysql_query("SELECT std_id FROM std_list");
//first i set all unique std_id to my Auto Increment Primary Key std_pk 
while ( $a_row = mysql_fetch_row( $query ) ) 
{
    $a_row=mysql_query("UPDATE `std_list` SET std_id = std_pk WHERE std_id != std_pk ");
};

//second i use ORDER BY to sort std_id by std_lname
$query=mysql_query("SELECT std_id  FROM std_list ORDER BY std_lname");

$x = 1;

//and third i use a value to set previous std_id to new one, $x is new std_id
while ( $a_row = mysql_fetch_row( $query ) ) 
    {
        $a_row=mysql_query("UPDATE std_list SET std_id = $x WHERE std_id = std_pk ");
        $x = $x + 1 ;
    };

我假设您想要查询数据库并获得一个排序的学生列表

为此,您应该更改sql查询并添加ORDERBY子句,而不是对键重新排序


请参阅:MySQL手册上的排序行

注释是//,而不是“\\”;我写得很快,谢谢你的回答,但我需要更新学生ID。。。例如,在我添加Alex之前,Benjamin在列表中,他的id为1,但现在id 1表示Alex,2表示Benjamin排序方式alphabet@vahid你们为什么要这样做?我想把我的学生名单按字母表排序,每个学生都有一个id从排序名单。。。当一个新学生进入所有更新列表并为所有学生生成新id时,您为什么要重新生成id?因为id必须按字母姓氏排序