mysql 5.5 中自連線update and delete
如:
Id Role_Id Source_Id Soul_Num
1 2 322009 10
2 2 321009 7
3 1 322009 2
4 1 321009 0
5 3 322009 5
6 4 322009 3
獲得:
Id Role_Id Source_Id Soul_Num
2 3 321009 27
4 1 321009 4
5 3 321009 5
6 4 321009 3
SQL如下:
start transaction;
update altar_soul_x
inner join (select Role_Id,Source_Id,Soul_Num SoulNum from altar_soul_x where Source_Id=322009) b on a.Role_Id=b.Role_Id and a.Source_Id=321009
SET a.Soul_Num = a.Soul_Num + b.SoulNum;
delete a
from altar_soul_x a
inner join (select Role_Id,Source_Id SourceId,Soul_Num SoulNum from altar_soul_x where Source_Id=321009) b on a.Role_Id=b.Role_Id;
update altar_soul_x set Source_Id = 321009 where Source_Id = 322009;
rollback;
不適合:Version:mysql5.1 ,如下語法適合該版本:
主要注意delete / update 語法:
SQL功能:保留tbl中Level最大的值,其餘剔除:
DELETE test.tbl e FROM test.tbl e
INNER JOIN (SELECT Role_Id,Pac_Level FROM(SELECT Role_Id,MAX(Pac_Level)Pac_Level FROM
test.tbl where Pac_Type=7 GROUP BY Role_Id HAVING COUNT(0)>1)a)f ON e.Role_Id = f.Role_Id
WHERE e.Pac_Type=7 AND e.Pac_Level
UPDATE DBName.thanks_tbl a
LEFT JOIN dbname.giving_tbl b ON a.RId = b.RId AND a.C_Type = b.C_Type
SET a.State = 0
where a.C_Type <> 1 and a.State =1 AND b.C_Type IS NULL;
主要注意delete / update 語法:
SQL功能:保留tbl中Level最大的值,其餘剔除:
DELETE test.tbl e FROM test.tbl e
INNER JOIN (SELECT Role_Id,Pac_Level FROM(SELECT Role_Id,MAX(Pac_Level)Pac_Level FROM
test.tbl where Pac_Type=7 GROUP BY Role_Id HAVING COUNT(0)>1)a)f ON e.Role_Id = f.Role_Id
WHERE e.Pac_Type=7 AND e.Pac_Level
UPDATE DBName.thanks_tbl a
LEFT JOIN dbname.giving_tbl b ON a.RId = b.RId AND a.C_Type = b.C_Type
SET a.State = 0
where a.C_Type <> 1 and a.State =1 AND b.C_Type IS NULL;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26855487/viewspace-735201/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 表連線時update與delete操作需注意的地方delete
- MySQL資料災難挽救之Delete\UpdateMySqldelete
- mysql innodb新建索引堵塞update ,insert,deleteMySql索引delete
- Tomcat 5.5 配置 MySQL 資料庫連線池TomcatMySql資料庫
- MySQL 5.5 INSERT ... ON DUPLICATE KEY UPDATE語句說明MySql
- mysql 在delete、insert、update 時,page的變化MySqldelete
- MySQL之資料的insert-delete-update操作MySqldelete
- 【MySQL】ERROR 1175 安全模式UPDATE/DELETE操作失敗MySqlError模式delete
- Oracle資料庫中Insert、Update、Delete操作速度Oracle資料庫delete
- 在命令列中連線mysql命令列MySql
- mysql自連線求累計金額MySql
- MYSQL學習筆記23: 多表查詢(自連線內連線+左右外連線)MySql筆記
- hibernate 中怎樣連線MYSQL??MySql
- Default Locking for INSERT, UPDATE, DELETE, and SELECT ... FOR UPDATE (351)delete
- Centos5.5中安裝Mysql5.5過程分享CentOSMySql
- SQL SERVER 自連線、外連線SQLServer
- 解決資料庫連線池連線mysql時,每隔8小時mysql自動斷開所有連線的問題資料庫MySql
- 例項解析外連線 內連線 自連線 全連線
- 34、VIEW可以insert,delete,update.Viewdelete
- MySQL 連線工具mysql中的語句註釋方法MySql
- MYSQL語法:左連線、右連線、內連線、全外連線MySql
- GO 連線 MySQLGoMySql
- JDBC連線mysqlJDBCMySql
- mysql 連線oracleMySqlOracle
- MySQL字串連線MySql字串
- C連線MySQLMySql
- MySQL筆記3——內連線/外連線、多表連線MySql筆記
- Sqlserver update\delete用inner join關聯,會update\delete關鍵字後面的表關聯到的行SQLServerdelete
- mysql自動斷開連線的問題處理MySql
- Oracle 表連線方式詳解(外連結、內連線、自連線)Oracle
- New in Mysql 5.5MySql
- mysql 左連線,右連線,內連結,exists等MySql
- MySQL Delete PHPMySqldeletePHP
- MySQL 5.5 執行指令碼中的SQLMySql指令碼
- mysql5.5中的半同步複製MySql
- 關於MYSQL DML(UPDATE DELETE)中的子查詢問題和ERROR 1093 (HY000)錯誤MySqldeleteError
- MySQL和Oracle中的delete,truncate對比MySqlOracledelete
- JPA配置mysql連線MySql