Форум сайта python.su
Приветствую.
Столкнулся с проблемой.
Есть база данных sqlite по которой нужно сделать выборку по похожим записям. Пробую делать запрос с прописанным в коде значением text и все работает.
SELECT * FROM table WHERE column LIKE '%text%')
SELECT * FROM table WHERE column = '%s' " % text)
import vk_api, random import sqlite3, datetime conn = sqlite3.connect("db.db3") c = conn.cursor() vk_session = vk_api.VkApi(token='TOKEN_HERE') from vk_api.longpoll import VkLongPoll, VkEventType longpoll = VkLongPoll(vk_session) vk = vk_session.get_api() def check_url(text): ### Работает при точном запросе c.execute("SELECT * FROM table WHERE column = '%s' " % text) result = c.fetchone() print("Ресулт ВК:") print(result) print("Текст ВК:") print(text) if result is None: return True return False def check_c(text): c.execute("SELECT * FROM table WHERE column LIKE %'%s'% " % text) ## Как подставить значение text c условием поиска по частичному совпадению ('%text%') ? result = c.fetchone() print("Ресулт like:") print(result) print("Текст Like:") print(text) if result is None: return True return False if not check_c(event.text.lower()): print("Есть") vk.messages.send( user_id=event.user_id, message="Есть" , keyboard=open("keyboard.json", "r", encoding="UTF-8").read(), random_id=random_id() )
Отредактировано Gens007 (Ноя. 28, 2019 21:21:23)
Офлайн
Решил вопрос сам.
Если вдруг кто столкнется с подобным вот решение.
("SELECT * FROM table WHERE column '%%%s%%' " % text)
Отредактировано Gens007 (Ноя. 28, 2019 23:47:36)
Офлайн
> Если вдруг кто столкнется с подобным вот решение.
Вообще то эти параметры нужно по другому задавать.
http://python-3.ru/page/parameterized-queries-sqlite-python
Офлайн