поиск данных, как переменная, но я хочу найти данные, как%?%, но, конечно, это не работает - PullRequest
0 голосов
/ 16 марта 2019

Я пытаюсь найти данные, КАК переменная, но я хочу найти данные как%?%, Но, конечно, это не работает, я могу использовать LIKE? но мне нужно также найти все значения с помощью, например, D и приходит с собакой

       search=self.text
    with sqlite3.connect('Data.db') as db:
        user_find = db.cursor()
        user_find.execute(
            'select * from "Animal Data" where Animal_ID LIKE ? or Animal_Name LIKE ? or Animal_Type LIKE ? or Animal_Gender LIKE ? or Animal_breed LIKE ? or Animal_breed LIKE ? or Animal_breed LIKE? or Animal_colour LIKE ? or Address LIKE ?'
            ,(search,search,search,search,search,search,search,search,search,))
        data = user_find.fetchall()
        print(data)

1 Ответ

2 голосов
/ 16 марта 2019

Вы должны привязать к заполнителю ? все выражение, которое вы хотите отобразить в операторе LIKE.То есть, если вы хотите найти любое поле, имеющее букву D, вы должны связать строку %D% с вашим утверждением.

search = '%' + search + '%'
user_find = db.cursor()
user_find.execute(
    'select * from "Animal Data" where Animal_ID LIKE ? or Animal_Name LIKE ? or Animal_Type LIKE ? or Animal_Gender LIKE ? or Animal_breed LIKE ? or Animal_breed LIKE ? or Animal_breed LIKE? or Animal_colour LIKE ? or Address LIKE ?',
    (search,search,search,search,search,search,search,search,search,)
)
data = user_find.fetchall()
print(data)
...