Как фильтровать данные строк из таблицы sqlite с переменной из нескольких столбцов? - PullRequest
1 голос
/ 27 мая 2020

Вот код, который я использую для фильтрации строк с переменной из одного столбца и его работы:

cur.execute("SELECT * FROM Table1 WHERE item1 LIKE ?", ('%'+item_name+'%', ))
n = cur.fetchall()

Но я хочу фильтровать строки с одной переменной из нескольких столбцов. Например: в таблице есть три столбца: item1, item2 и item3. Я хочу фильтровать строки как select * from table1, где item1, item2 и item3. Если возможно, дайте мне знать. Как это сделать?

1 Ответ

1 голос
/ 27 мая 2020

Вы можете присоединить таблицу к этому запросу:

SELECT '%' || ? || '%' AS item_name

на тех условиях, которые вы хотите, например:

SELECT t1.* 
FROM Table1 t1 INNER JOIN (SELECT '%' || ? || '%' AS item_name) t2
ON t1.item1 LIKE t2.item_name OR t1.item2 LIKE t2.item_name OR t1.item3 LIKE t2.item_name 

, и ваш код будет:

cur.execute("SELECT t1.* FROM .....", (item_name, ))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...