а что сложного подставить переменную в запрос?
получаете город или что там
city = message.text
with db.connect('your.db') as connection:
cursor = connection.cursor()
cursor.execute("SELECT * FROM table WHERE row = ?", (city,))
result = cursor.fetchall()
если немного доработать то может что-то вроде того:
def check_city(city ):
with db.connect('your.db') as connection:
cursor = connection.cursor()
cursor.execute("SELECT * FROM table WHERE row = ? ", (city,))
data = cursor.fetchone()
if data is None:
return False
else:
return data
test = check_city(message.text)
if test:
bot.send_message(user_id, test[0]) # например первое поле из таблицы