MySQL UPDATE 查询
如果我们需要修改或更新 MySQL 中的数据,我们可以使用 SQL UPDATE 命令来操作。
语法
以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法:
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
- 你可以同时更新一个或多个字段。
- 你可以在 WHERE 子句中指定任何条件。
- 你可以在一个单独表中同时更新数据。
当你需要更新数据表中指定行的数据时 WHERE 子句是非常有用的。
通过命令提示符更新数据
以下我们将在 SQL UPDATE 命令使用 WHERE 子句来更新 mydb_jianshu 表中指定的数据:
实例
以下实例将更新数据表中 jianshu_id 为 3 的 jianshu_author 字段值:
mysql> update mydb_jianshu set jianshu_author='Fangdm' where jianshu_id=3;
Query OK, 1 row affected (0.09 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from mydb_jianshu where jianshu_id=3;
+------------+---------------+----------------+-----------------+
| jianshu_id | jianshu_title | jianshu_author | submission_date |
+------------+---------------+----------------+-----------------+
| 3 | MySQL基础 | Fangdm | 2018-02-09 |
+------------+---------------+----------------+-----------------+
1 row in set (0.00 sec)
mysql>
从结果上看,jianshu_id 为 3 的 jianshu_author 已被修改。
使用PHP脚本更新数据
PHP 脚本执行 SQL 语句时,你可以在 SQL UPDATE 语句中使用或者不使用 WHERE 子句。
注意:不使用 WHERE 子句将数据表的全部数据进行更新,所以要慎重。
实例
以下实例将更新 jianshu_id 为 2 的 jianshu_author 字段的数据。
<?php
$dbname = 'mydb';
$servername = 'localhost';
$username = 'root';
$password = '';
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// 设置 PDO 错误模式为异常
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "update mydb_jianshu set jianshu_author='Fangdm' where jianshu_id=2;";
//使用 exec() ,因为没有结果返回
$conn->exec($sql);
echo "更新成功。";
} catch (PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
查看结果:
mysql> select * from mydb_jianshu where jianshu_id=2;
+------------+----------------------------+----------------+-----------------+
| jianshu_id | jianshu_title | jianshu_author | submission_date |
+------------+----------------------------+----------------+-----------------+
| 2 | 学习网络安全从0到1 | Fangdm | 2018-02-09 |
+------------+----------------------------+----------------+-----------------+
1 row in set (0.00 sec)
mysql>
一起学习一起进步,写的不好见谅。