Выбрать одинаковые колонки из базы данных SQL

У меня есть база данных в корой много сайтов на Wordpress и другие сайты Мне нужно вытащить все URL сайтов из всех таблиц *_options из 1 столбца в строке option_value делаю так

SHOW TABLES LIKE '%_options'

получаю все таблицы с префиксом

потом на php создаю запрос для всех таблиц через UNION

while ($row = $stmt->fetch())
    {
           $newsql .= "SELECT option_value FROM `".$row[0]."` WHERE option_id = 1 UNION ";
    }

получается:

SELECT option_value FROM `55wp_options` WHERE option_id = 1 UNION SELECT option_value FROM `afriqueh_options` WHERE option_id = 1 UNION SELECT option_value FROM `fak_options` WHERE option_id = 1 UNION SELECT option_value FROM `test_options` WHERE option_id = 1 UNION

ВОПРОС: В бд есть таблицы с окончанием *_options но они не от вордпреса и содержат другие таблицы по этому при выполнении моего запроса выходит ошибка : #1054 - Неизвестный столбец 'option_value' в 'field list'

Весь день ищу решение, как сделать так чтобы таблицы без option_value не попадали в выборку или игнорировались при запросе.


Ответы (2 шт):

Автор решения: Lem0nti
select column_name 
from information_schema.columns
where table_name='".$row[0]."' and column_name='option_value'

Наличие результата в таком запросе даст вам понять, что столбец есть в таблице.

→ Ссылка
Автор решения: user517290

Вот полное решение вопроса. Вдруг кто то столкнется.

<?php

$user = 'root';
$pass = 'root';

$dbh = new PDO('mysql:host=localhost;dbname=database', $user, $pass);

$table_names = $dbh->query("SHOW TABLES LIKE '%_options'");

while ($row = $table_names->fetch()) {
 //echo $row[0].'<br>';

 $has_wp_options = $dbh->query("SELECT COLUMN_NAME FROM information_schema.COLUMNS
  WHERE TABLE_SCHEMA = 'database'
  AND TABLE_NAME = '{$row[0]}'
  AND COLUMN_NAME = 'option_name'");

  while ($row2 = $has_wp_options->fetch()) {

    if (!empty($row2[0])) {
      $site_url = $dbh->query("SELECT option_value FROM $row[0] WHERE option_name = 'siteurl'")->fetchObject();

      echo 'Table of wp: ' . $row[0] . '; Siteurl: ' . $site_url->option_value."<br>";
    }
  }
}
→ Ссылка