是否有只查询记录的查询,如果不存在,则插入?我不想重复更新或替换。寻找一个查询解决方案,寻找其他答案,但不是我真正想要的。
表:
name|value|id ------------------ phill|person|12345
伪查询:
IF NOT EXISTS(name='phill', value='person', id=12345) INSERT INTO table_name
使用REPLACE-与INSERT完全相同,不同之处在于,如果表中的旧行与PRIMARY KEY或UNIQUE索引的新行具有相同的值,则在插入新行之前会删除该旧行。
REPLACE
http://dev.mysql.com/doc/refman/5.0/en/replace.html
-- For your example query REPLACE INTO table_name(name, value, id) VALUES ('phill', 'person', 12345)
编辑:由于您不能使用REPLACE,另一个选择是:为表数据(主键,唯一性)设置约束索引并使用INSERT IGNORE
INSERT IGNORE INTO table_name SET name = 'phill', value = 'person', id = 12345;