我在这种情况下,要检查数据库中的行中是否存在帐号。该列可以包含多个帐号,每个帐号之间用逗号隔开,例如。 00001,00002,00003。
例如案例:SELECT * FROM finance_collection.member WHERE account_ids LIKE 00001,% OR %,00001 OR %,00001,% OR 00001
为此,我编写了一条SQL语句为:

account_exists = " SELECT * FROM finance_collection.member WHERE account_ids LIKE %s,% OR %,%s OR %,%s,% OR %s "


%s是传入的帐号,是逗号,%是多字符通配符。

    try:
    with connection.cursor() as cursor:

        sql = sqls.account_exists
        cursor.execute(sql, (account, account, account, account))
        return True

    except pymysql.Error as error:
    print(error)
    return False


我正在使用pymysql进行连接,但查询似乎无法正常工作。我尝试了各种组合,例如将%s,%' '以及其他组合在一起,但没有一个起作用。你能给我看看灯吗?

最佳答案

用另一个%转义%(是的,这没有多大意义,但这是事实):

x = "a=%sx%%2C" % ('text')
x
>>> 'a=textx%2C'

09-18 13:48