@Pista

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

Есть файл SQLITE3 base.db
WindowsTerminal_fxzDrIgEGk.png

Содержит много таблиц.
В каждой таблице есть имя колонки referer, нужно сделать поиск по всем таблицам данных из колонки referer, например слово содержащее yandex из колонки referer
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
Генерируем запрос по всем таблицам:
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_%';


Получаем:
select "t1" table_name, * from t1 where referer = "yandex" union select "t2" table_name, * from t2 where referer = "yandex"


Выполняем:

+============+====+=========+
| table_name | id | referer |
+============+====+=========+
| t1         | 2  | yandex  |
+------------+----+---------+
| t2         | 20 | yandex  |
+------------+----+---------+


SQLite fiddle
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Через SHOW TABLES получаете список всех таблиц и по очереди делаете поиск в каждой или формируете запрос с UNION.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы