[英]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。
打印用戶
Select * From Users
然后構建一個循環以將用戶返回到表中。 然后你可以用它做你的動作。
<?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.