[英]php\mysql delete data from two not related table in one query
我必須表tbl1和tbl2之間沒有關系,我想使用一個查詢從兩個表中刪除不同的數據是可能的還是我應該在兩個單獨的查詢中執行
我嘗試了以下查詢
$del ="
DELETE
FROM tbl1
, tbl2
WHERE tbl1.delete_time IS NOT NULL
AND tbl1.delete_time != '0000-00-00 00:00:00'
AND tbl2.delete_time IS NOT NULL
AND tbl2.delete_time != '0000-00-00 00:00:00'
";
$sql =mysql_query($del) or die(mysql_error());
$res = mysql_query($sql);
但是我遇到了以下錯誤:SQL語法中有錯誤; 檢查與您的MariaDB服務器版本相對應的手冊以獲取在'WHERE tbl1.delete_time IS NOT null和tbl1.delete_time!='0000-0'第1行附近使用的正確語法
提前致謝
考慮通過將它們分開來更改查詢;
像下面
DELETE FROM tbl1 WHERE delete_time IS NOT null AND delete_time != '0000-00-00 00:00:00'; DELETE FROM tbl2 WHERE delete_time IS NOT NULL AND delete_time != '0000-00-00 00:00:00';
(或)推薦方式; 將兩個DELETE
語句包裝在一個存儲過程中
create procedure usp_deleteData
as
begin
DELETE FROM tbl1
WHERE delete_time IS NOT null
AND delete_time != '0000-00-00 00:00:00';
DELETE FROM tbl2
WHERE delete_time IS NOT NULL
AND delete_time != '0000-00-00 00:00:00';
end
另外,盡管您在表之間沒有關系,但是具有名為delete_time
公共列,因此您可以執行Multi Table DELETE-JOIN
DELETE tbl1, tbl2 FROM tbl1
INNER JOIN tbl2
WHERE tbl2.delete_time = tbl1.delete_time
AND tbl2.delete_time IS NOT NULL
AND tbl1.delete_time IS NOT NULL
AND '0000-00-00 00:00:00' NOT IN (tbl1.delete_time, tbl2.delete_time);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.