Выбрать значения из базы данных, содержащие данную строку
у меня есть база данных "users.db" , содержащая таблицу "users", записи в которой имеют следующую структуру:

Я хочу получить все записи, в которых передаваемая строка str входит в строку из колонки user_name:
str in user_name = True
Обращение к базе данных происходит посредством sqlite3. Подскажите пожалуйста, как я могу это сделать)
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Используйте оператор like:
SELECT * FROM users WHERE user_name LIKE '%Петр%'
В запросе с sqlite3 с переменной это выглядит так (тут % это спецсимвол для like, чтобы поиск был в любой части текста)
text = '%Петр%'
connect.execute("SELECT * FROM users WHERE user_name LIKE ?", [text]).fetchall()
С sqlite 3.7.15 можно использовать функцию instr (тут уже не нужно будет добавлять %, чтобы найти внутри строки, в отличии от like):
text = 'Петр'
connect.execute("SELECT * FROM users WHERE instr(user_name, ?) > 0", [text]).fetchall()