簡體   English   中英

mysql - 如何在沒有主鍵的情況下更新表中的特定行?

[英]How to update a specific row in a table without a primary key in MySQL?

我正在嘗試在 MySQL 數據庫表中使用 UPDATE 查詢。 我在表中有自動遞增的主鍵,但在執行此查詢時我不想使用此鍵。 這是因為刪除記錄時此列不會重新開始計數,因此表中存在間隙。 例如,如果我刪除第 25 行然后插入新行,該行的 ID/將為 26。所以回到我的問題,我想知道如何編輯一個特定記錄/行的值。 我嘗試了以下方法:

UPDATE `table_name` SET `first_Name` = "Robert" WHERE (SELECT * FROM `employees` LIMIT 1,1)

這是我僅在第二行中更新 firs_Name 的嘗試。 但它不起作用。 有一些語法錯誤。 有沒有其他方法可以做到這一點? 或者我可以解決自動遞增列的問題(我更喜歡忽略這一點的答案)。

提前致謝!

您的用戶表如下所示:

id    |   first_name
1     |   Robert
2     |   Sam

現在你想編輯 SAM 所以他被稱為 Samuel。

#1

打印用戶

Select * From Users

然后構建一個循環以將用戶返回到表中。 然后你可以用它做你的動作。

#2

<?php

if(isset($_GET['userid']))
{
    if(isset($_POST['update']))
    {
        mysql_query("UPDATE Users SET first_name = '".$_POST['first_name']."' where id=".$_GET['userid']." LIMIT 1");
    }
    else
    {
        $get_user_sql = "SELECT * FROM Users WHERE id = ".$_GET['userid']." LIMIT 1";
        $query_user = mysql_query($get_user_sql);
        $user = mysql_fetch_assoc($query_user);
        print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
        print '<input type="text" name="first_name" id="first_name" value="'.$user['first_name'].'" />';
        print '<input type="submit" />';
    }
}
else
{
    $sql = "SELECT * FROM Users";
    $query = mysql_query($sql);
    while($row = mysql_fetch_assoc($query))
    {
        print '<a href="?userid='.$row['id'].'">edit user <b>'.$row['first_name'].'</b></a><br />';
    }
}

?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM