亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MySQL/MariaDB DELETE 查詢昨天工作正常,今天影響 0 行...查詢不變

MySQL/MariaDB DELETE 查詢昨天工作正常,今天影響 0 行...查詢不變

蕪湖不蕪 2023-07-06 14:38:33
我正在運行 MariaDB 10.3.16 的本地主機 XAMPP 設置,并編寫了以下查詢,該查詢根據第一個表的“ID”列從多個表中刪除行。問題是,昨天還運行得很好,今天在相同的測試數據上根本不會產生任何影響。我在本例中重命名了表,但其他一切都相同。假設我們嘗試刪除當前存在的多個 ID 48、49 和 50:delete t1,t2,t3,t4,t5,t6,t7,t8 from table1 as t1join table2 as t2 on t2.account_id = t1.idjoin table3 as t3 on t3.account_id = t1.idjoin table4 as t4 on t4.account_id = t1.idjoin table5 as t5 on t5.account_id = t1.idjoin table6 as t6 on t6.account_id = t1.idjoin table7 as t7 on t7.account_id = t1.idjoin table8 as t8 on t8.account_id = t1.idwhere t1.id in (48,49,50);我現在有點抓狂,因為這個查詢昨天多次運行良好,因為我在各個表中添加行來測試它。每次都有效。今天,我在項目的一個完全不相關的部分做了一些其他工作,然后回到使用 API 的 DELETE 端點 - 結果發現這個查詢根本不會再刪除任何東西。一切順利,但現在影響 0 行。將查詢直接復制并粘貼到 phpMyAdmin(它也曾經在其中工作)給出了相同的結果 - 0 行受到影響。我的查詢有問題嗎?你會以不同的方式寫這個嗎?是否有任何原因可以解釋為什么相同的查詢、在相同的環境中、使用相同的測試數據,有一天可以工作,而第二天就不行了?也許是一個小故障?
查看完整描述

1 回答

?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

我的查詢的問題是,只有當所有表都包含我正在搜索的 account_ids 時,它才會刪除任何內容。如果其中任何一個沒有關聯 ID 的數據,數據庫就會停止,不會影響任何內容。

我又搜索了一下,發現將查詢中的JOIN更改為LEFT JOIN允許在找到 id 的所有表中完成該操作,跳過那些沒有 id 的表。是時候閱讀更多有關 SQL 的內容了!


查看完整回答
反對 回復 2023-07-06
  • 1 回答
  • 0 關注
  • 132 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號