我的表格如下:
id url title
1 http://afef.com/abc/def/gje/qkd hello
2 http://afe.com/?a=3&b=2&fse=3 hello
3 http://stackoverflow.com/fefw/sefac/fsg hello-world
此处id
是主键和auto_increment,url
是唯一的,但title
可以重复。
从这个角度来看,当我向这个表添加新的URL时,如:
INSERT IGNORE INTO table (url, title)
VALUES ('http://abcd.com/affefef/sfsaa/?a=3', 'this is title')
然后,如果它是要插入的新URL,则无关紧要。但如果它是重复的网址,则会被忽略,我无法知道重复的网址id
是什么。
id
不得更改。
当我使用一个查询插入重复的网址时,是否有任何解决方案可以了解id
?
答案 0 :(得分:2)
有条件检查有助于获取重复的ID
检查此代码:
mysql.query("SELECT id FROM table WHERE url = 'http://abcd.com/affefef/sfsaa/?a=3", function(error, result, field) {
if(error) {
exist(error); //No error
} else if (result) {
if (result.length > 0){
console.log("Id exist:" + result['id']);
}else{
// write your insert statement here
}
}
});
答案 1 :(得分:1)
仅在一个查询中,我认为这是不可能的。但是你可以使用Mysql函数" last_insert_id"检索已插入的id。检查它,你将能够看到它是否是一个新的。 见http://www.mysqltutorial.org/mysql-last_insert_id.aspx
您还可以查看"重复插入"。使用此语法,如果字段存在,它将更新字段,或者如果找不到密钥则插入新字段。
https://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html