可能会有一个需要,要在一个MySQL表中的现有数据进行修改。可以通过使用SQL UPDATE命令来执行。可以修改任何MySQL表中任何字段的值。

语法

这里是UPDATE命令修改数据到MySQL表的通用SQL语法:

UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
  • 完全可以更新一个或多个字段。
  • 可以指定使用任何条件在WHERE子句中。
  • 可以一次更新一个表中的值。

当想更新表中选定行,WHERE子句是非常有用的。

1、从命令提示符更新数据

使用SQL UPDATE命令以及WHERE子句来更新选定数据到MySQL表docs_tbl。

示例

下面的例子将更新 tutorial_id 为3 的纪录中的 docs_title 字段。

[root@linuxxyz ~]# mysql -u root -p
Enter password:
mysql> use test;
Database changed
mysql> UPDATE docs_tbl 
    -> SET docs_title='Learning Nginx' 
    -> WHERE docs_id=3;
Query OK, 1 row affected (0.04 sec)
Rows matched: 1  Changed: 1  Warnings: 0

2、使用PHP脚本更新数据

可以使用SQL UPDATE命令带或不带WHERE子句在PHP的mysql_query()函数。在MySQL的>提示符下执行该函数,将执行类似SQL命令的效果。

示例

试试下面的例子,将更新docs_id为3的的纪录的docs_title字段。

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}
$sql = 'UPDATE docs_tbl
        SET docs_title="Learning Nginx"
        WHERE docs_id=3';

mysql_select_db('test');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";
mysql_close($conn);
?>