mysql表中的where

ssm49v7z  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(362)

我正在使用一个使用mysql的代码。我是mysql的新手,如果你能帮我,我会很感激的。我的输入是一个巨大的维基百科页面转储文件,格式为XMLBZ2。输入格式是使用以下格式从xml文件中提取的一些文本文件:

<doc id="12" url="https://en.wikipedia.org/wiki?curid=12" title="Anarchism"> text... </doc>

将程序连接到sql的唯一部分如下所示:

def read_in_STOP_CATS(f_n = "/media/sscepano/Data/Wiki2015/STOPCAT/STOP_CATS.txt"):
    s = []
    f = open(f_n, "r")
    for line in f:
            s.append(line.rstrip().lower())
    return s

def connect_2_db():
    try:
        cnx = mysql.connector.connect(user='test', password='test',
                                  host='127.0.0.1',
                                  database='wiki_category_links')
    except mysql.connector.Error as err:
        if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
            print("Something is wrong with your user name or password")
        elif err.errno == errorcode.ER_BAD_DB_ERROR:
            print("Database does not exist")
        else:
            print(err)
    return cnx

def articles_selected(aid):
    global cnx
    global STOP_CATS
    cursor = cnx.cursor(buffered=True)
    cursor.execute("SELECT * FROM categorylinks where cl_from = " + str(aid))

    row = cursor.fetchone()
    while row is not None:
        #print(row)
        cat = row[1].lower()
        #print cat
        for el in STOP_CATS:
            if el in cat:
                return False
        row = cursor.fetchone()

    return True

cnx = connect_2_db()
STOP_CATS = read_in_STOP_CATS()
TITLE_WEIGHT = 4

我的问题是,现在我不知道我应该如何连接到mysql才能运行代码和主要问题;我不知道代码中的categorylinks是什么?这应该是我的sql表的名称吗?这是否意味着我需要用这个名称创建一个sql表,并将所有文本文件导入到这个表中?在这行中,“where”是什么意思????

4xrmg8kj

4xrmg8kj1#

正如riggsfolly所说,你需要 WHERE cl_from = 'some string' 你可以这样做:

cursor.execute("SELECT * FROM categorylinks where cl_from ='" + str(aid)+"'")

但最好使用这样的准备好的陈述:

select_stmt = "SELECT * FROM categorylinks where cl_from = %(aid)s"
cursor.execute(select_stmt, { 'aid':str(aid) })

所以在你的代码里你有:
一个名为wiki\u category\u links的数据库
在该数据库中有一个名为categorylinks的表
选择意味着您将从表categorylinks中获得所有列clu from等于aid变量值的行。

相关问题