記錄一些sql 給自己

2021-08-21 09:33:39 字數 753 閱讀 5584

當需要用到如果資料庫存在就更新,不存在就儲存的情況,可以使用下面這個關鍵字。

on duplicate key update 

如何判斷這個資料是存在的呢?

看這個關鍵字,起初我以為是根據主鍵key來判斷是否存在同乙個資料的,看了一些部落格也是這麼說的。

但是在我自己的測試中,我給id設定了主鍵,但是在我希望他更新的時候他並沒有更新,而是插入了一條,因為我沒有給id值,所以他判斷不到同乙個資料這很正常,但是在我看過釘釘官方demo的時候,我發現他們同樣也是沒有給id設值,但是為什麼會找到資料庫裡同乙個資料呢,所以我想on duplicate key update這個關鍵字他的判斷不僅僅是主鍵,在我看了表的索引之後,我發現在某個欄位有unique唯一索引,肯定沒錯就是這個原因了,我也在新錶中加了唯一索引,果然即使主鍵沒有值,他還是會根據唯一索引來判斷是否為同一資料。

看這裡的id是主鍵

這裡給corp_id和suite_key設定了聯合唯一索引

當我執行這條sql的時候,並沒有插入記錄,而是更新一條記錄的修改時間。

驗證了之前的猜想。但是為什麼這裡顯示的受影響的行數是2呢?

group_concat(expr)

列轉行,將指定欄位的值用逗號(,)拼接。

記錄一些sql語句

mysql查詢今天 昨天 7天 近30天 本月 上一月 資料 今天 select from 表名 where to days 時間欄位名 to days now 昨天select from 表名 where to days now to days 時間欄位名 1 7天select from 表名 w...

記錄自己的一些思考

重視單元測試 首先為什麼要寫單元測試呢?一開始我也覺得是一件挺浪費時間的是事情 有這個想法是因為當時寫的 太少了,同時沒有考慮到後面的可維護性 記得在上一家公司的時候,架構師要求必須要寫單元測試,不寫不讓上線。當時還是一名實習生,也不明白為什麼要寫呢,我自己大致測一下,為什麼還要花時間去寫單元測試呢...

給自己的一些職場Tips

p198 1.許多剛加入公司的新員工一開始就記者要做出成績,但是由於不熟悉環境,四處碰壁,被打消了積極性,反而不利於長遠發展。其實新員工首先要做的事情是融入團隊,跟大家打成一片,只要能和團隊一起共進退,你就不是乙個人在戰鬥。等熟悉了情況,知道了水的深淺後,再尋找突破口,擇機而動。2.新員工最不需要做...