MYSQL按URL选择

时间:2016-11-15 05:22:15

标签: mysql node.js

我的表格如下:

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

2 个答案:

答案 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