如果表中的值只有在已经存在的情况下才使用mysql,那么如何从表中插入值?

时间:2013-07-27 00:49:31

标签: mysql

我试图从表中读取值,只有当我尝试插入的凝视在表中不存在时才将其插入另一个表中。

我曾尝试使用ON DUPLICATE KEY子句,但是我遇到了一个无法解决的语法问题。

这是我的查询

SELECT Field1 FROM RSF
INSERT INTO result_codes(result_code_title, created_by)
VALUES (Field1, '2')
ON DUPLICATE KEY UPDATE result_code_title = Field1;

2 个答案:

答案 0 :(得分:2)

该条款为INSERT INTO ... SELECT而非SELECT ... INSERT INTO。因此:

INSERT INTO result_codes( result_code_title, created_by )
SELECT Field1, '2'
FROM RSF
ON DUPLICATE KEY 
    UPDATE result_code_title = Field1;

我认为这应该有用。


由于您只想在字符串不存在时插入;你最好使用INSERT INGORE

INSERT IGNORE INTO result_codes( result_code_title, created_by )
SELECT Field1, '2'
FROM RSF

答案 1 :(得分:1)

改为使用INSERT IGNORE

INSERT IGNORE INTO result_codes(result_code_title, created_by)
SELECT Field1, '2'
FROM RSF

它通过主键或唯一索引检测,如果一行已经存在,并且在这种情况下不会尝试插入。