如何将输入值与mysql数据库进行比较,如果没有匹配的d,则自动添加“0”和“1”

2024-03-29 11:25:10 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我想把我的输入值和我的数据库进行比较。如果输入值与数据库值相同,我想print("Data Valid")。如果不一样,我想在输入值中加上“0”和“1”。 并自动再次将最终值与我的数据库进行比较等等。你知道吗

所以我尝试了以下代码:

curs = connection.cursor()
    query = """ SELECT * FROM `foo` """

    curs.execute(query)
    result = curs.fetchall()
    inputvalue = input("Input= ")
    temp = False
    for x in result:
        if inputvalue in x:
            temp = True
    if temp:
        print("Data Valid")
    else:
        inputvalue += '0'
        inputvalue += '1'
        if inputvalue in x:
            print(inputvalue)

但在我运行代码之后,它似乎将“0”和“1”都添加到了值中,我希望它是2个不同的值。你知道吗

如果数据与数据库相同,我希望输出为:

inputvalue= 100
Data Valid

如果不一样,我希望输出是:

inputvalue= 100
1000
1001

然后再次将10001001与我的数据库进行比较 输出如下:(如果数据与我的数据库匹配)

inputvalue= 100
1000
1001
Data Valid

如果不匹配:

inputvalue= 100
1000
1001
10000
10001
10010
10011

任何答案都将不胜感激,并帮助我这么多!你知道吗


Tags: 数据代码in数据库dataifresultconnection
1条回答
网友
1楼 · 发布于 2024-03-29 11:25:10

你的代码有点乱。你可以试试这个:

def check(value, result):
    for ele in result:
        if value in ele:
            print('Data Valid')
            return True
    return False

def check_in_list(value_list, result):
    for value in value_list:
        if check(value, result):
            return True
    return False

# refer to your code
curs = connection.cursor()
query = """ SELECT * FROM `foo` """
curs.execute(query)
result = curs.fetchall()
input_value = input("Input= ")

value_list = [input_value]
while True:
    if check_in_list(value_list, result):
        break
    tmp_list = []
    for value in value_list:
        print(value + '0')
        print(value + '1')
        tmp_list.append(value + '0')
        tmp_list.append(value + '1')
    value_list = tmp_list

但它也有一些缺点,有时可能会陷入无限循环。你知道吗

相关问题 更多 >