Bạn có thể cập nhật các bản ghi hiện có trong bảng bằng cách sử dụng câu lệnh "UPDATE".
Ví dụ sau sẽ cập nhật địa chỉ từ "Hà Tĩnh" thành "Hà Tây":
var mysql = require['mysql']; var con = mysql.createConnection[{ host: "localhost", user: "root", password: "", database: "nodejs_db" }]; con.connect[function[err] { if [err] throw err; var sql = "UPDATE customers SET address = 'Hà Tây' WHERE address = 'Hà Tĩnh'"; con.query[sql, function [err, result] { if [err] throw err; console.log[result.affectedRows + " record[s] updated"]; }]; }];
Lưu ý mệnh đề WHERE trong cú pháp UPDATE: Mệnh đề WHERE chỉ định bản ghi nào hoặc các bản ghi cần được cập nhật. Nếu bạn bỏ qua mệnh đề WHERE, tất cả các bản ghi sẽ được cập nhật!
Lưu mã ở trên vào tệp có tên "demo_db_update.js" và chạy tệp:
C:\Users\Your Name>node demo_db_update.js
Kết quả:
1 record[s] updated
Đối tượng result
Khi thực hiện một truy vấn, một đối tượng result được trả về.
Đối tượng result chứa thông tin về cách truy vấn ảnh hưởng đến bảng.
Đối tượng result trả về từ ví dụ trên trông giống như sau:
{
fieldCount: 0,
affectedRows: 1,
insertId: 0,
serverStatus: 34,
warningCount: 0,
message: '[Rows matched: 1 Changed: 1 Warnings: 0',
protocol41: true,
changedRows: 1
}
Để truy cập vào thuộc tính của đối tượng result ta sử dụng toán tử [.].
Ví dụ nếu ta muốn truy cập thuộc tính affectedRows để biết số lượng cột chịu ảnh hưởng từ câu lệnh truy vấn thì ta làm như sau:
console.log[result.affectedRows]
Và kết quả sẽ là:
1
Code ví dụ Node.js MySQL Update [sửa row, records] [Xem thêm: Tự học Node.js qua ví dụ] Giả sử bạn đã có sẵn database demo với table customer [id, name, address] [Xem lại: Code ví dụ node.js tạo database, tạo table] và insert sẵn các bản ghi sau: Code ví dụ node.js sửa address của bản ghi có id = 1 thành ‘ [nhớ phải cài module mysql trước nhé]CREATE DATABASE demo;
CREATE TABLE demo.customer [id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR[255], address VARCHAR[255]];
INSERT INTO `demo`.`customer` [`name`, `address`] VALUES ['kai', 'ha noi - viet nam'];
INSERT INTO `demo`.`customer` [`name`, `address`] VALUES ['sena', 'vinh phuc - viet nam'];
INSERT INTO `demo`.`customer` [`name`, `address`] VALUES ['iron man', 'new york - usa'];
INSERT INTO `demo`.`customer` [`name`, `address`] VALUES ['batman', 'gotham - usa'];
INSERT INTO `demo`.`customer` [`name`, `address`] VALUES ['bruce lee', 'hong kong - china'];
No. 1 - Thai Ha - Dong Da - Ha Noi
‘
var mysql = require['mysql']; var con = mysql.createConnection[{ host: "localhost", port: "3306", user: "root", password: "admin1234", database: "demo" }]; con.connect[function[err] { if [err] throw err; console.log["Connected!"]; }]; var sql = "UPDATE customer SET address = 'No. 1 - Thai Ha - Dong Da - Ha Noi' WHERE id = 1"; con.query[sql, function [err, result] { if [err] throw err; console.log["Number of records updated: " + result.affectedRows]; }]; con.end[function[err] { if [err] throw err; console.log["Closed!"]; }];
Đối tượng result
trả về sẽ gồm các thông tin sau:
{ fieldCount: , affectedRows: , insertId: , serverStatus: , warningCount: , message: , protocol41: , changedRows: }
Chạy file index.js
Kiểm tra lại database:
* Lưu ý, mệnh đề WHERE trong câu lệnh UPDATE dùng để xác định bản ghi được update, nếu bạn không có mệnh đệnh WHERE thì nó sẽ thực hiện update đối với tất cả các bản ghi.
Ví dụ "UPDATE customer SET address = 'No. 1 - Thai Ha - Dong Da - Ha Noi'"
thì nó sẽ thực hiện update address thành ‘No. 1 - Thai Ha - Dong Da - Ha Noi
‘ cho tất cả các bản ghi