Tìm hiểu lệnh DELETE trong MariaDB
Lệnh DELETE dùng để xóa các dòng dữ liệu trong bảng. Sau khi xóa, số lượng dòng bị xóa có thể được kiểm tra thông qua hàm ROW_COUNT().
- Mệnh đề WHERE: Được dùng để chỉ định các dòng sẽ bị xóa. Nếu không có mệnh đề này, tất cả các dòng trong bảng sẽ bị xóa.
- Mệnh đề LIMIT: Dùng để giới hạn số lượng dòng bị xóa trong một lần thực thi.
Khi sử dụng DELETE để xóa nhiều dòng, chỉ những dòng thỏa điều kiện mới bị xóa. Lưu ý rằng các mệnh đề LIMIT và WHERE không được phép sử dụng chung trong một số trường hợp đặc biệt.
Một điều cần lưu ý là lệnh DELETE không cho phép xóa dữ liệu từ một bảng và sau đó thực hiện thao tác SELECT từ cùng một bảng trong cùng một truy vấn con.
Cú pháp lệnh DELETE trong MariaDB
DELETE FROM table_name [WHERE …]
Bạn có thể thực hiện lệnh này thông qua dòng lệnh hoặc sử dụng script PHP.
Bài viết này được đăng tại [free tuts .net]
Thực hiện lệnh DELETE trong dòng lệnh trong MariaDB
Ví dụ thực hiện qua dòng lệnh như sau:
root@host# mysql –u root –p password; Enter password:******* mysql> use PRODUCTS; Database changed mysql> DELETE FROM products_tbl WHERE product_id = 133; mysql> SELECT * FROM products_tbl WHERE product_id = '133'; ERROR 1032 (HY000): Can't find record in 'products_tbl'
Kết quả trả về cho biết rằng dòng dữ liệu có product_id = 133 đã bị xóa thành công.
Thực hiện lệnh DELETE trong PHP trong MariaDB
Dưới đây là ví dụ sử dụng PHP để thực thi lệnh DELETE:
<?php $dbhost = 'localhost:3036'; $dbuser = 'root'; $dbpass = 'rootpassword'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if (! $conn ) { die('Không thể kết nối: ' . mysql_error()); } $sql = 'DELETE FROM products_tbl WHERE product_id = 261'; mysql_select_db('PRODUCTS'); $retval = mysql_query($sql, $conn); if (! $retval ) { die('Không thể xóa dữ liệu: ' . mysql_error()); } echo "Dữ liệu đã được xóa thành công\n"; mysql_close($conn); ?>
Kết quả sau khi thực thi thành công
Nếu lệnh được thực hiện thành công, kết quả hiển thị:
mysql> Dữ liệu đã được xóa thành công mysql> SELECT * FROM products_tbl WHERE product_id = '261'; ERROR 1032 (HY000): Can't find record in 'products_tbl'