溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL中怎么插入不重復(fù)數(shù)據(jù)

發(fā)布時間:2021-07-13 16:32:32 來源:億速云 閱讀:160 作者:Leah 欄目:數(shù)據(jù)庫

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)MySQL中怎么插入不重復(fù)數(shù)據(jù),文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。


 
之前最naive的想法就是先對將要插入的記錄進(jìn)行一次查詢,如果result set大小大于0則表明數(shù)據(jù)已經(jīng)存在,不進(jìn)行數(shù)據(jù)插入操作,否則insert into……,今天才明白可以一條SQL語句解決問題,利用MySQL的dual表,方法如下:
 
INSERT INTO users_roles
(userid, roleid)
SELECT 'userid_x', 'roleid_x'
FROM dual
WHERE NOT EXISTS (
  SELECT * FROM users_roles
  WHERE userid = 'userid_x'
  AND roleid = 'roleid_x'
);
 
其中,users_roles是需要進(jìn)行數(shù)據(jù)插入的表,userid_x和roleid_x是需要插入的一條記錄。
 
MySQL中的dual表解釋如下:
Table - `dual`:a dummy table in
 
mysql文檔中對于dual表的解釋:
You are allowed to specify DUAL as a dummy table name in situations where no tables are referenced:
mysql> SELECT 1 + 1 FROM DUAL;

        -> 2

DUAL is purely for the convenience of people who require that all SELECT statements should have FROM and possibly other clauses. MySQL may ignore the clauses. MySQL does not require FROM DUAL if no tables are referenced.

上述就是小編為大家分享的MySQL中怎么插入不重復(fù)數(shù)據(jù)了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI