Как найти данные по всем таблицам из определенной колонки SQLITE3

udder

Client
Регистрация
28.03.2017
Сообщения
600
Благодарностей
119
Баллы
43
Есть файл SQLITE3 base.db
WindowsTerminal_fxzDrIgEGk.png


Содержит много таблиц.
В каждой таблице есть имя колонки referer, нужно сделать поиск по всем таблицам данных из колонки referer, например слово содержащее yandex из колонки referer
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 807
Баллы
113
Тут пишут, что с помощью запроса SELECT * FROM dbname.sqlite_master WHERE type='table'; можно получить все таблицы в БД.
Ну а дальше выполнять в цикле один и тот же нужный запрос, подставляя название таблицы.
 
  • Спасибо
Реакции: udder и doc

udder

Client
Регистрация
28.03.2017
Сообщения
600
Благодарностей
119
Баллы
43
Добрые люди с хабра помогли, решение выкладываю и здесь

Генерируем запрос по всем таблицам:

SQL:
SELECT
    GROUP_CONCAT('select "' || name || '" table_name, * from `' || name || '` where referer = "yandex"', ' union ') q
FROM
    sqlite_master
WHERE
    type ='table' AND
    name NOT LIKE 'sqlite_%';
получаем ответ и выполняем

SQL:
select "t1" table_name, * from t1 where referer = "yandex" union select "t2" table_name, * from t2 where referer = "yandex"
Тулза для онлайн тестирования запросов в браузере.

SQLize - format run and share SQL queries online
 
  • Спасибо
Реакции: nicanil

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)