我已经找到了尝试这种方法的方法,到目前为止,赌注答案是使用INSERT IGNORE
语法,但我的问题是我不能使用id。
如果您不知道记录ID,是否有办法将记录插入数据库?如果您不知道记录ID?
例如:我想检查col1
(' Hello')中的数据是否已经存在。
INSERT IGNORE INTO table_name (col1, col2) values ('Hello', 1);
现有记录:
+--------------------+
| table_name |
+--------------------+
| id | col1 | col2 |
+--------------------+
| 2 | Hello | 1 |
| | | |
答案 0 :(得分:0)
你的问题不明确。 MYSQL仅适用于id。如果你想让它在col1上工作那么你可以写这样的东西
INSERT IGNORE INTO table_name (col1, col2)
values ('Hello', 1) WHERE NOT EXISTS ( SELECT col1 from table_name
WHERE col1 = 'Hello')
但是再添加一些描述来正确回答它。
答案 1 :(得分:0)
我相信ON DUPLICATE KEY UPDATE适合您的情况
示例查询:
INSERT INTO table_name (id, col1, col2) VALUES (1,'Hello', 1)
ON DUPLICATE KEY UPDATE col1 = col1,col2 = col2;
更新:我在查询中添加了id
列值。此查询检查id=1
是否已存在然后不会插入,如果不存在则会插入
<小时/> 如果您想检查
col1
列的重复内容,则必须在此列上添加unique constrain
ALTER TABLE table_name ADD UNIQUE (col1)
现在查询插入和检查重复是:
INSERT INTO table_name (col1, col2) VALUES ('Hello', 1)
ON DUPLICATE KEY UPDATE col1 = col1,col2 = col2;
如果指定 ON DUPLICATE KEY UPDATE ,则插入一行 会导致 UNIQUE索引或 PRIMARY KEY
中的重复值
答案 2 :(得分:0)
您可以使用ON DUPLICATE
插入记录,如果存在,则会更新。如果不存在,它将插入
例如:
Insert into table_name (col1, col2) values ('Hello', 1);
ON DUPLICATE KEY UPDATE col1=values(col1),col2=values(col2)