Вложенный запрос SQLite - PullRequest
0 голосов
/ 07 мая 2020

Я довольно долго искал, но не смог понять, как выбрать столбец id из таблицы, где любой из заданных других столбцов не равен null.

Я попытался связать вложенный запрос например:

SELECT id, name FROM spam_table WHERE (SELECT c.name FROM pragma_table_info('spam_table') c WHERE c.name LIKE '%ham%' OR c.name LIKE '%eggs%') IS NOT NULL

Есть ли способ, чтобы внутренний PRAGMA возвращал соответствующие имена столбцов, которые будут использоваться для внешнего запроса. И насколько уверен, что внешний запрос составлен с использованием OR

Cheers.

Ответы [ 2 ]

0 голосов
/ 11 мая 2020

Спасибо @DinoCoderSaurus за указание на отсутствие Dynami c имена столбцов

Код, который я использую, требует большего количества стиля pythoni c, но на самом деле я использую

for a in spam_table[0]: # Tables Header from the pragma_table_info(spam_table)
    for i in eggs:      # Search terms given by the UI
        if i in a:
            spam_eggs.append(self.spam_table[0].index(a))

Теперь я знаю, какие столбцы нужно проверить, чтобы извлечь id

0 голосов
/ 08 мая 2020

Есть ли способ, которым внутренняя PRAGMA возвращает соответствующие имена столбцов, которые будут использоваться для внешнего запроса.

Нет. В sqlite нет имен столбцов (или таблиц) "Dynami c".

Один из способов сделать это в python:

  • выполнить pragma_table_info select
  • получить результаты
  • повторить результаты и создать желаемую sql строку
  • выполнить созданную sql строку
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...