T10*_*000 3 mysql sql insert duplicates
我需要进行插入,但仅当相似的记录不存在时才会出现
例如:
INSERT INTO请求('user_id','subject','text','time')VALUES(56,'test','test 1234',6516516)
但要检查另一条记录中是否有相同的"主题"和"文字":
我需要两种情况的SQL,因为我现在不确定我将要使用什么.
提前致谢!
Rob*_*lin 14
INSERT INTO requests ('user_id','subject','text','time')
VALUES (56,'test','test 1234',6516516)
ON DUPLICATE KEY UPDATE time = VALUES(time), user_id = VALUES(user_id)
Run Code Online (Sandbox Code Playgroud)
将相关列设置为索引UNIQUE.
这将插入一行,但如果主题或文本(或两者)已经存在,则使用给定time和更新现有行user_id
首先,您可以进行更新。如果记录不存在,则什么都不会发生...
UPDATE
requests
SET
user_id = 56,
time = 6516516
WHERE
subject = 'test'
AND text = 'test 1234'
Run Code Online (Sandbox Code Playgroud)
然后您可以在 INSERT 中使用 SELECT 而不是 VALUES。如果记录已经存在,则不会插入任何内容...
INSERT INTO
requests (
user_id,
subject,
text,
time
)
SELECT
56,
'test',
'test 1234',
6516516
WHERE
NOT EXISTS (SELECT * FROM requests WHERE subject = 'test' AND text = 'test 1234')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15803 次 |
| 最近记录: |