在python函数中使用sqlite3查询

时间:2015-07-30 02:19:05

标签: python sqlite

我有一个记录用户,事件和页面访问的数据库。每个页面访问和事件都有一个会话编号和分配给他们的用户ID(以及其他一些东西)。

现在我的python脚本每次有事件或页面访问时都会创建一个新用户 - 这不应该发生,因为某些事件和页面访问可能在同一会话期间发生。

我想查询数据库以查看数据库中是否存在具有相同编号的会话,从而暗示用户也已经在数据库中。因此,如果会话编号已存在,则应返回用户,如果结果为None,则将用户记录到数据库中。

该功能看起来像这样:

def find_user(session)
    s = session
    c.execute('FROM event SELECT user WHERE session=?', s)

但我不知道下一步该做什么。我不确定python如何解释结果,所以我不知道如何定义if语句

另外,如果它们之间没有直接连接,我可以通过两个表查看相同的属性(会话)吗?

1 个答案:

答案 0 :(得分:2)

使用fetchone获取查询结果。

def find_user(session)
    c.execute('SELECT user FROM event WHERE session=?', [session])
    row = c.fetchone()
    if row:
        return row[0]  # the first column: user
    else:
        return None

我稍微修改了一下SELECT语句。