我有以下问题。我想发送";my_url";仅当"0"为dbURLS
时;my_url";尚未在数据库URLS
中。我在Python中使用了两种方法:
def exist_url(self, my_url): # Returns true/false if my_urls is in the db
query = """
SELECT url FROM URLS
WHERE url=(%s)
"""
self.cursor.execute(query, my_url)
return self.cursor.fetchone()
def insert_url(self, my_url): #sinserts my_url to db
query = """
INSERT INTO URLS
VALUES (%s)
"""
self.cursor.execute(query, my_url)
self.connection.commit()
我能把这两个函数合为一吗?即在一个查询中检查my_urls
是否已经存在于URLS
中,如果不插入?感谢
您可以使用不存在逻辑的插入:
def insert_url(self, my_url): #sinserts my_url to db
query = """
INSERT INTO URLS (url)
SELECT %s
WHERE NOT EXISTS (SELECT 1 FROM URLS WHERE url = %s)
"""
self.cursor.execute(query, (my_url, my_url,))
self.connection.commit()