Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Выборка из нескольких бд
 
 автор: артурчик   (20.07.2011 в 23:33)   письмо автору
 
 

Здравствуйте!


у меня есть список баз данных mysql. Есть среди них и те бд, в которых присутствует таблица с одним и тем же названием. И мне надо из всех бд, в которых есть эта таблица выбрать значение. подскажите ка сделать оптимально?


Благодарю!

  Ответить  
 
 автор: Valick   (20.07.2011 в 23:48)   письмо автору
 
   для: артурчик   (20.07.2011 в 23:33)
 

опишите что за базы, почему их так много, что содержит таблица и с какой целью нужна выборка из этих всех баз

  Ответить  
 
 автор: Grr   (21.07.2011 в 09:08)   письмо автору
 
   для: Valick   (20.07.2011 в 23:48)
 

например, есть несколько бд, их может быть около 100 и более

бд1 ._искомое_название_таблицы
бд3534534._искомое_название_таблицы
бд3. а здесь такой таблицы нет
бд4. а здесь такой таблицы нет

и необходимо выбрать значения из тех бд, где есть таблица с нужным названием таблицы и нужными полями. Можно использовать EXIST, но я не знаю как все связать в одном запросе? или может правильный подход

  Ответить  
 
 автор: cheops   (21.07.2011 в 11:45)   письмо автору
 
   для: Grr   (21.07.2011 в 09:08)
 

Собственно при создании таких запросов можно использовать хранимые функции или использовать расширенные имена, как у вас указано. Если вам нужно проверить существование таблицы, вероятно вам стоит обратить внимание на информационную схему, откуда можно извлечь информацию о всех доступных базах и таблицах.

  Ответить  
 
 автор: Grr   (21.07.2011 в 14:19)   письмо автору
 
   для: cheops   (21.07.2011 в 11:45)
 

вот например что нужно, только он не рабочий

SELECT GROUP_CONCAT(i.TABLE_NAME, '.', my_pole) as nm
FROM INFORMATION_SCHEMA.TABLES AS i
WHERE i.TABLE_NAME ='My_NAME_TABLE'
GROUP BY i.TABLE_SCHEMA



тоесть найти бд, в которых есть таблицу с названием My_NAME_TABLE, и выбрать значение my_pole. Процедура не подходит, можно ли переделать так?

  Ответить  
 
 автор: cheops   (21.07.2011 в 15:23)   письмо автору
 
   для: Grr   (21.07.2011 в 14:19)
 

Нет, так в FROM подставить название таблицы не получится, максимум что можно подставить в FROM это переменную, которая начинается с @, т.е. название таблицы сначала нужно извлечь в переменную, а её уже подставить в запрос. Поэтому без процедуры довольно трудно тут обойтись... вернее невозможно.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования