MySQL通过URL选择

3

我有一个表格,长这个样子:

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是主键并且自动递增,url是唯一的,但是title可以重复。

从这个角度来看,当我向此表中添加新的URL时,比如说:

INSERT IGNORE INTO table (url, title)
VALUES ('http://abcd.com/affefef/sfsaa/?a=3', 'this is title')

如果是要插入新的URL,那就没问题了。但如果是重复的URL,它将被忽略,我就不知道重复的URL的id是什么。

id必须保持不变。

有没有办法在一次查询中插入重复的URL时知道id


在插入之前,您可以使用选择查询来检查该URL是否存在。 - Afsar
你可以使用 select insert - Beginner
@zan 不是比较非常长的URL太长了吗?我的意思是,如果我使用“select”,它将比较所有具有非常长URL的行。 - user7159879
是的,但是将那个操作留在MySQL上。 - Afsar
我认为MongoDB可以轻松获取您插入的ID,或者您只需将验证器添加到MongoDB中。 - Beginner
2个回答

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
                }
            }
        });

是的,我的不好意思,我现在是个PHP狂热者,我会换成node版本的,谢谢@NewbeeDev指出。 - Afsar

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接