最近看到 UPDATE 和 DELETE
可以搭配用 JOIN 方式
這種常常查詢資料都要搭配程式 for 迴圈實作
我覺得非常實用
我網路隨便找一個範例
SQL Fiddle
UPDATE … INNER JOIN
1 | UPDATE comentarios a |
透過 JOIN
方式可以同時改兩張表的資料
但還有更神奇的妙用
就是把b
表換成子查詢
可以用 JOIN 方式改變a
表的內容
省了寫程式 code
超級實用
1 | UPDATE comentarios a |
DELETE … INNER JOIN
DELETE 也能搭配 JOIN
不過有點跟原本 DELETE 不太一樣
如下
1 | DELETE a,b |
通常穩們用的 DELETE 都是改from
表
但 JOIN 不是這樣,是針對 DELETE 後面 table 命名 a,b 做刪除
當然也可以不用刪除兩張表DELETE a FROM ...
或DELETE b FROM ...
都可以指定刪除
此招也很實用
鎖表的問題
上面妙招還是會有一些缺點
SQL 鎖表對一些資料表會造成些問題
有爬到mysql insert 锁机制【转】 - paul_hch - 博客园 備份圖
其他
SQL 也有一些實用用法
1 | INSERT INTO xxx SELECT... |
1 | REPLACE INTO .... |
1 | INSERT INTO .... ON DUPLICATE KEY UPDATE |
(mysql)replace into …与 insert into … on duplicate key update 对比分析 - Abysscarry 的博客 - CSDN 博客
mysql 中 replace into 与 insert into on duplicate key update 的使用和不同点 - 怀素真 - 博客园
MySQL 的 Replace into 与 Insert into on duplicate key update 真正的不同之处 - xlxxcc 的专栏 - CSDN 博客