實用的sql
1.插入或替換
如果我們想插入一條新記錄(insert),但如果記錄已經存在,就先刪除原記錄,再插入新記錄。
情景示例:這張表存的每個客戶最近一次交易訂單資訊,要求保證單個使用者資料不重複錄入,且執行效率最高,與資料庫互動最少,支撐資料庫的高可用。
此時,可以使用"replace into"語句,這樣就不必先查詢,再決定是否先刪除再插入。
"replace into"語句是基於唯一索引或主鍵來判斷唯一(是否存在)的。
"replace into"語句是基於唯一索引或主鍵來判斷唯一(是否存在)的。
"replace into"語句是基於唯一索引或主鍵來判斷唯一(是否存在)的。
注意事項:如下sql所示,需要在username欄位上建立唯一索引(unique),transid設定自增即可。
--20點充值replace into last_transaction (transid,username,amount,trans_time,remark)
values (
null, '
chenhaha
', 30, '
2020-06-11 20:00:20
', '
會員充值');
--21點買**
replace into last_transaction (transid,username,amount,trans_time,remark)
values (
null, '
chenhaha
', 100, '
2020-06-11 21:00:00
', '
購買盲僧至高之拳**
');
若username='chenhaha'的記錄不存在,replace語句將插入新記錄(首次充值),否則,當前username='chenhaha'的記錄將被刪除,然後再插入新記錄。
id不要給具體值,不然會影響sql執行,業務有特殊需求除外。
2.插入或更新
如果我們希望插入一條新記錄(insert),但如果記錄已經存在,就更新該記錄,此時,可以使用"insert into ... on duplicate key update ..."語句:
情景示例:這張表存了使用者歷史充值金額,如果第一次充值就新增一條資料,如果該使用者充值過就累加歷史充值金額,需要保證單個使用者資料不重複錄入。
這時可以使用"insert into ... on duplicate key update ..."語句。
注意事項:同上,"insert into ... on duplicate key update ..."語句是基於唯一索引或主鍵來判斷唯一(是否存在)的。如下sql所示,需要在username欄位上建立唯一索引(unique),transid設定自增即可。
--使用者陳哈哈充值了30元買會員insert into total_transaction (t_transid,username,total_amount,last_transtime,last_remark)
values (
null, '
chenhaha
', 30, '
2020-06-11 20:00:20
', '
充會員'
) on duplicate key update total_amount=total_amount + 30, last_transtime='
2020-06-11 20:00:20
', last_remark ='
充會員';
--使用者陳哈哈充值了100元買瞎子至高之拳**
insert into total_transaction (t_transid,username,total_amount,last_transtime,last_remark)
values (
null, '
chenhaha
', 100, '
2020-06-11 20:00:20
', '
購買盲僧至高之拳**')
on duplicate key update total_amount=total_amount + 100, last_transtime='
2020-06-11 21:00:00
', last_remark ='
購買盲僧至高之拳**
';
若username='chenhaha'的記錄不存在,insert語句將插入新記錄,否則,當前username='chenhaha'的記錄將被更新,更新的字段由update指定。
A 演算法 遊戲開發中經常用到
a star 演算法是一種靜態路網中求解最短路最有效的直接搜尋方法。公式表示為 f n g n h n 其中 f n 是從初始點經由節點n到目標點的估價函式,g n 是在狀態空間中從初始節點到n節點的實際代價,h n 是從n到目標節點最佳路徑的估計代價。保證找到最短路徑 最優解的 條件,關鍵在於估價...
Eclipse 中經常用到的快捷鍵
eclipse 常用快捷鍵收集 2006年09 月29日星期五 12 00 ctrl 1 快速修復 最經典的快捷鍵 就不用多說了 ctrl d 刪除當前行 ctrl alt 複製當前行到下一行 複製增加 ctrl alt 複製當前行到上一行 複製增加 alt 當前行和下面一行互動位置 特別實用 可以...
Eclipse 中經常用到的快捷鍵
ctrl 1 快速修復 最經典的快捷鍵,就不用多說了 ctrl d 刪除當前行 ctrl alt 複製當前行到下一行 複製增加 ctrl alt 複製當前行到上一行 複製增加 alt 當前行和下面一行互動位置 特別實用,可以省去先剪下,再貼上了 alt 當前行和上面一行互動位置 同上 alt 前乙個...